Skip to content

gh run view --log -j <job_id> erroneously returns no stdout/stderr, exits 0 #10853

Description

@ryan-williams

Describe the bug

In single-cell-data/TileDB-SOMA, gh run view --log -j <job_id> erroneously exits 0 while printing no logs, for every job I've tried:

gh run -R single-cell-data/TileDB-SOMA view --log -j 41013280987  # exits 0, no output
gh run -R single-cell-data/TileDB-SOMA view --log -j 40986064176  # exits 0, no output
gh run -R single-cell-data/TileDB-SOMA view --log -j 41015499160  # exits 0, no output
gh run -R single-cell-data/TileDB-SOMA view --log -j 41001342582  # exits 0, no output

(41013280987, 40986064176, 41015499160, 41001342582)

However, corresponding jobs in my fork (ryan-williams/TileDB-SOMA) return logs, as expected:

gh run -R ryan-williams/TileDB-SOMA view --log -j 41020345782 | wc
#   17335  272882 3063392

(41020345782)

Both repos have "Artifact and log retention" set to 90d, under /settings/actions, and the jobs above were all run in the last 24hrs.

Why does gh run view --log -j <job_id> silently fail, for all jobs in single-cell-data/TileDB-SOMA, but not equivalent jobs in ryan-williams/TileDB-SOMA?

Activity

  1. williammartin commented on Apr 23, 2025

    @williammartin
    Member

    Can you add your gh version here please.

  2. ryan-williams commented on Apr 24, 2025

    @ryan-williams
    Author

    I was on 2.69.0 (via Homebrew, on macOS 15.4) yesterday when I observed the issue.

    I ran brew upgrade this AM and now have:

    gh version
    # gh version 2.71.0 (2025-04-23)
    # https://github.com/cli/cli/releases/tag/v2.71.0

    Re-running my examples from OP, I now see:

    gh run -R single-cell-data/TileDB-SOMA view --log -j 41013280987  # ❌ exits 0, no output (same as yesterday)
    gh run -R single-cell-data/TileDB-SOMA view --log -j 40986064176  # ❌ exits 0, no output (same as yesterday)
    gh run -R single-cell-data/TileDB-SOMA view --log -j 41015499160  # ❌ exits 0, no output (same as yesterday)
    gh run -R single-cell-data/TileDB-SOMA view --log -j 41001342582  # 🚨 returns logs today (didn't yesterday); simple "control" job (no workflow_call or matrix)
    
    gh run -R ryan-williams/TileDB-SOMA view --log -j 41020345782 | wc  # Same as yesterday
    #   17335  272882 3063392

    I'm now getting logs for job 41001342582, which was my "control" yesterday (no workflow_call or matrix).

    However, I'm still getting no logs for 41013280987, but yes logs for 41020345782, even though they are the same job (just run in upstream vs. fork).

    I'm also still getting no logs for:

    • 40986064176 (different workflow than the above, but similar structure: matrix entries workflow_call another workflow, which contains multiple jobs, resulting in /s in job-names), and
    • 41015499160 (simple matrix, no workflow_call or sub-jobs with /s).

    I'd think you could run any of these commands and see the same things; can you confirm?

  3. williammartin commented on Apr 24, 2025

    @williammartin
    Member

    Just FWIW we released 2.71.1 10 minutes ago to fix a bug in pr create.

    Yes I see the same thing as you, just wanted to get you moved forward to a version that included the most recent log fixes.

    I would expect any workflows with / in names to not work. So I think we just need to understand https://github.com/single-cell-data/TileDB-SOMA/actions/runs/14615136857/job/41015499160

    Will have a look now.

  4. added
    platformProblems with the GitHub platform rather than the CLI client
    on Apr 24, 2025
  5. williammartin commented on Apr 24, 2025

    @williammartin
    Member

    As far as I'm concerned, the log service is returning incorrect logs for https://github.com/single-cell-data/TileDB-SOMA/actions/runs/14615136857

    For example, under the covers (you can check using GH_DEBUG=api) , gh run -R single-cell-data/TileDB-SOMA view --log -j 41015499160 makes a requests for all logs for the run with the intention to prune them client side.

    * Request to https://api.github.com/repos/single-cell-data/TileDB-SOMA/actions/runs/14615136857/logs
    > GET /repos/single-cell-data/TileDB-SOMA/actions/runs/14615136857/logs HTTP/1.1
    

    But the content of the returned zip only contains one job (Ubuntu 1.15.7):

    ➜  gh tree
    .
    ├── 17_Ubuntu 1.15.7.txt
    ├── Ubuntu 1.15.7
    │   └── system.txt
    └── run-log-14615136857-1745415139.zip
    

    See that fetching the logs for that particular job actually does work (cache needs to be cleared first, usually lives in $XDG_CACHE_HOME/gh or ~/.cache/gh):

    ➜  gh gh run -R single-cell-data/TileDB-SOMA view --log -j 41015489178 | cat
    Ubuntu 1.15.7   UNKNOWN STEP    2025-04-23T13:33:19.7504313Z Current runner version: '2.323.0'
    Ubuntu 1.15.7   UNKNOWN STEP    2025-04-23T13:33:19.7533836Z ##[group]Operating System
    Ubuntu 1.15.7   UNKNOWN STEP    2025-04-23T13:33:19.7535221Z Ubuntu
    Ubuntu 1.15.7   UNKNOWN STEP    2025-04-23T13:33:19.7535727Z 24.04.2
    Ubuntu 1.15.7   UNKNOWN STEP    2025-04-23T13:33:19.7536387Z LTS
    

    Going to ask the team that owns logs about this.

  6. ryan-williams commented on Apr 24, 2025

    @ryan-williams
    Author

    Thanks, just one note re:

    I would expect any workflows with / in names to not work

    41020345782 has /s in job names, and returns logs fine. The only difference I've ID'd between it and 41013280987 is which repo they ran in:

    gh run -R single-cell-data/TileDB-SOMA view --log -j 41013280987       # ❌ No logs
    gh run -R    ryan-williams/TileDB-SOMA view --log -j 41020345782 | wc  # ✅ Yes logs
    #   17335  272882 3063392

    When I download log archives for both (from web UI), I see similar structure as you showed yesterday (with _ substituted for /), except:

    • 41013280987 (broken via gh) includes a directory and a file for each job
    • 41020345782 (OK via gh) only has a file per job
    ll 41020345782  # ✅ job from fork, returns logs via `gh`
    # total 20080
    # -rw-r--r-- 1 ryan staff 1954104 Dec 31  1979 0_build (macos-latest, 3.10) _ build.txt
    # -rw-r--r-- 1 ryan staff 2108126 Dec 31  1979 10_build (ubuntu-24.04, 3.10) _ build.txt
    # -rw-r--r-- 1 ryan staff 2108443 Dec 31  1979 12_build (ubuntu-24.04, 3.11) _ build.txt
    # -rw-r--r-- 1 ryan staff   25546 Dec 31  1979 13_build (ubuntu-24.04, 3.11) _ lint.txt
    # -rw-r--r-- 1 ryan staff 2108208 Dec 31  1979 14_build (ubuntu-24.04, 3.12) _ build.txt
    # -rw-r--r-- 1 ryan staff 2130050 Dec 31  1979 16_build (ubuntu-24.04, 3.13) _ build.txt
    # -rw-r--r-- 1 ryan staff 2192868 Dec 31  1979 19_build (ubuntu-24.04, 3.9) _ build.txt
    # -rw-r--r-- 1 ryan staff 1944599 Dec 31  1979 2_build (macos-latest, 3.11) _ build.txt
    # -rw-r--r-- 1 ryan staff 1952013 Dec 31  1979 5_build (macos-latest, 3.12) _ build.txt
    # -rw-r--r-- 1 ryan staff 1972562 Dec 31  1979 6_build (macos-latest, 3.13) _ build.txt
    # -rw-r--r-- 1 ryan staff 2040696 Dec 31  1979 8_build (macos-latest, 3.9) _ build.txt
    
    ll 41013280987  # ❌ job from upstream, doesn't return logs via `gh`
    # total 20072
    # -rw-r--r-- 1 ryan staff 1993470 Dec 31  1979 10_build (macos-latest, 3.13) _ build.txt
    # -rw-r--r-- 1 ryan staff   24094 Dec 31  1979 12_build (ubuntu-24.04, 3.11) _ lint.txt
    # -rw-r--r-- 1 ryan staff 2094012 Dec 31  1979 13_build (ubuntu-24.04, 3.12) _ build.txt
    # -rw-r--r-- 1 ryan staff 2129461 Dec 31  1979 14_build (ubuntu-24.04, 3.10) _ build.txt
    # -rw-r--r-- 1 ryan staff 2022593 Dec 31  1979 15_build (macos-latest, 3.9) _ build.txt
    # -rw-r--r-- 1 ryan staff 1977244 Dec 31  1979 16_build (macos-latest, 3.10) _ build.txt
    # -rw-r--r-- 1 ryan staff 2094028 Dec 31  1979 18_build (ubuntu-24.04, 3.11) _ build.txt
    # -rw-r--r-- 1 ryan staff 1971479 Dec 31  1979 19_build (macos-latest, 3.11) _ build.txt
    # -rw-r--r-- 1 ryan staff 2115907 Dec 31  1979 7_build (ubuntu-24.04, 3.13) _ build.txt
    # -rw-r--r-- 1 ryan staff 1934162 Dec 31  1979 8_build (macos-latest, 3.12) _ build.txt
    # -rw-r--r-- 1 ryan staff 2178955 Dec 31  1979 9_build (ubuntu-24.04, 3.9) _ build.txt
    # drwxr-xr-x 3 ryan staff      96 Apr 24 10:27 build (macos-latest, 3.10) _ build
    # drwxr-xr-x 3 ryan staff      96 Apr 24 10:27 build (macos-latest, 3.11) _ build
    # drwxr-xr-x 3 ryan staff      96 Apr 24 10:27 build (macos-latest, 3.12) _ build
    # drwxr-xr-x 3 ryan staff      96 Apr 24 10:27 build (macos-latest, 3.13) _ build
    # drwxr-xr-x 3 ryan staff      96 Apr 24 10:27 build (macos-latest, 3.9) _ build
    # drwxr-xr-x 3 ryan staff      96 Apr 24 10:27 build (ubuntu-24.04, 3.10) _ build
    # drwxr-xr-x 3 ryan staff      96 Apr 24 10:27 build (ubuntu-24.04, 3.11) _ build
    # drwxr-xr-x 3 ryan staff      96 Apr 24 10:27 build (ubuntu-24.04, 3.11) _ lint
    # drwxr-xr-x 3 ryan staff      96 Apr 24 10:27 build (ubuntu-24.04, 3.12) _ build
    # drwxr-xr-x 3 ryan staff      96 Apr 24 10:27 build (ubuntu-24.04, 3.13) _ build
    # drwxr-xr-x 3 ryan staff      96 Apr 24 10:27 build (ubuntu-24.04, 3.9) _ build
  7. williammartin commented on Apr 24, 2025

    @williammartin
    Member

    I think what's happening with https://github.com/single-cell-data/TileDB-SOMA/actions/runs/14615136857 (thanks other team) is that you re-ran failed jobs:

    Image

    By default gh grabs the latest zip logs for a run, which in this case only includes the job you reran. You can validate this by getting logs from the first run with:

    gh run -R single-cell-data/TileDB-SOMA view --attempt 1 --log -j 41015499160
    

    It seems like the UI does some work to stitch runs together. Maybe that's a feature we should look to support as well.


    In terms of your comment in #10853 (comment), I think this is because one log is being served by the old log service and one log is being served by the new log service. I actually don't see the same _ usage as you, so perhaps you can double check that. Here's what I see when running gh run -R ryan-williams/TileDB-SOMA view --log -j 41020345782 (note no _ just blank):

    ➜  run-log-14620886373-1745418926 tree
    .
    ├── -2147172352_build.txt
    ├── -2147188736_lint.txt
    ├── -2147205120_build.txt
    ├── -2147221504_lint.txt
    ├── -2147237888_build.txt
    ├── -2147254272_lint.txt
    ├── -2147270656_build.txt
    ├── -2147287040_lint.txt
    ├── -2147303424_build.txt
    ├── -2147319808_lint.txt
    ├── -2147336192_build.txt
    ├── -2147352576_lint.txt
    ├── -2147368960_build.txt
    ├── -2147385344_lint.txt
    ├── -2147401728_build.txt
    ├── -2147418112_lint.txt
    ├── -2147434496_build.txt
    ├── -2147450880_lint.txt
    ├── -2147467264_build.txt
    ├── -2147483648_lint.txt
    ├── 0_build (macos-latest, 3.10)  build.txt
    ├── 0_build (macos-latest, 3.11)  build.txt
    ├── 0_build (macos-latest, 3.12)  build.txt
    ├── 0_build (macos-latest, 3.13)  build.txt
    ├── 0_build (macos-latest, 3.9)  build.txt
    ├── 0_build (ubuntu-24.04, 3.10)  build.txt
    ├── 0_build (ubuntu-24.04, 3.11)  build.txt
    ├── 0_build (ubuntu-24.04, 3.11)  lint.txt
    ├── 0_build (ubuntu-24.04, 3.12)  build.txt
    ├── 0_build (ubuntu-24.04, 3.13)  build.txt
    ├── 0_build (ubuntu-24.04, 3.9)  build.txt
    ├── build (macos-latest, 3.10)  build
    │   ├── 10_Show package versions.txt
    │   ├── 11_Show XCode version.txt
    │   ├── 12_Log pip dependencies.txt
    │   ├── 13_Run libtiledbsoma unit tests.txt
    │   ├── 14_Run pytests for Python.txt
    │   ├── 1_Set up job.txt
    │   ├── 29_Post Set up Python 3.10.txt
    │   ├── 2_Show matrix OS.txt
    │   ├── 30_Post Checkout TileDB-SOMA.txt
    │   ├── 31_Complete job.txt
    │   ├── 4_MacOS CPU info.txt
    │   ├── 5_Select XCode version.txt
    │   ├── 6_Checkout TileDB-SOMA.txt
    │   ├── 7_Set Up Test Data.txt
    │   ├── 8_Set up Python 3.10.txt
    │   └── 9_Install tiledbsoma.txt
    ├── build (macos-latest, 3.10)  lint
    ├── build (macos-latest, 3.11)  build
    │   ├── 10_Show package versions.txt
    │   ├── 11_Show XCode version.txt
    │   ├── 12_Log pip dependencies.txt
    │   ├── 13_Run libtiledbsoma unit tests.txt
    │   ├── 14_Run pytests for Python.txt
    │   ├── 1_Set up job.txt
    │   ├── 29_Post Set up Python 3.11.txt
    │   ├── 2_Show matrix OS.txt
    │   ├── 30_Post Checkout TileDB-SOMA.txt
    │   ├── 31_Complete job.txt
    │   ├── 4_MacOS CPU info.txt
    │   ├── 5_Select XCode version.txt
    │   ├── 6_Checkout TileDB-SOMA.txt
    │   ├── 7_Set Up Test Data.txt
    │   ├── 8_Set up Python 3.11.txt
    │   └── 9_Install tiledbsoma.txt
    ├── build (macos-latest, 3.11)  lint
    ├── build (macos-latest, 3.12)  build
    │   ├── 10_Show package versions.txt
    │   ├── 11_Show XCode version.txt
    │   ├── 12_Log pip dependencies.txt
    │   ├── 13_Run libtiledbsoma unit tests.txt
    │   ├── 14_Run pytests for Python.txt
    │   ├── 1_Set up job.txt
    │   ├── 29_Post Set up Python 3.12.txt
    │   ├── 2_Show matrix OS.txt
    │   ├── 30_Post Checkout TileDB-SOMA.txt
    │   ├── 31_Complete job.txt
    │   ├── 4_MacOS CPU info.txt
    │   ├── 5_Select XCode version.txt
    │   ├── 6_Checkout TileDB-SOMA.txt
    │   ├── 7_Set Up Test Data.txt
    │   ├── 8_Set up Python 3.12.txt
    │   └── 9_Install tiledbsoma.txt
    ├── build (macos-latest, 3.12)  lint
    ├── build (macos-latest, 3.13)  build
    │   ├── 10_Show package versions.txt
    │   ├── 11_Show XCode version.txt
    │   ├── 12_Log pip dependencies.txt
    │   ├── 13_Run libtiledbsoma unit tests.txt
    │   ├── 14_Run pytests for Python.txt
    │   ├── 1_Set up job.txt
    │   ├── 29_Post Set up Python 3.13.txt
    │   ├── 2_Show matrix OS.txt
    │   ├── 30_Post Checkout TileDB-SOMA.txt
    │   ├── 31_Complete job.txt
    │   ├── 4_MacOS CPU info.txt
    │   ├── 5_Select XCode version.txt
    │   ├── 6_Checkout TileDB-SOMA.txt
    │   ├── 7_Set Up Test Data.txt
    │   ├── 8_Set up Python 3.13.txt
    │   └── 9_Install tiledbsoma.txt
    ├── build (macos-latest, 3.13)  lint
    ├── build (macos-latest, 3.9)  build
    │   ├── 10_Show package versions.txt
    │   ├── 11_Show XCode version.txt
    │   ├── 12_Log pip dependencies.txt
    │   ├── 13_Run libtiledbsoma unit tests.txt
    │   ├── 14_Run pytests for Python.txt
    │   ├── 1_Set up job.txt
    │   ├── 29_Post Set up Python 3.9.txt
    │   ├── 2_Show matrix OS.txt
    │   ├── 30_Post Checkout TileDB-SOMA.txt
    │   ├── 31_Complete job.txt
    │   ├── 4_MacOS CPU info.txt
    │   ├── 5_Select XCode version.txt
    │   ├── 6_Checkout TileDB-SOMA.txt
    │   ├── 7_Set Up Test Data.txt
    │   ├── 8_Set up Python 3.9.txt
    │   └── 9_Install tiledbsoma.txt
    ├── build (macos-latest, 3.9)  lint
    ├── build (ubuntu-24.04, 3.10)  build
    │   ├── 10_Show package versions.txt
    │   ├── 11_Show XCode version.txt
    │   ├── 12_Log pip dependencies.txt
    │   ├── 13_Run libtiledbsoma unit tests.txt
    │   ├── 14_Run pytests for Python.txt
    │   ├── 1_Set up job.txt
    │   ├── 29_Post Set up Python 3.10.txt
    │   ├── 2_Show matrix OS.txt
    │   ├── 30_Post Checkout TileDB-SOMA.txt
    │   ├── 31_Complete job.txt
    │   ├── 3_Linux CPU info.txt
    │   ├── 6_Checkout TileDB-SOMA.txt
    │   ├── 7_Set Up Test Data.txt
    │   ├── 8_Set up Python 3.10.txt
    │   └── 9_Install tiledbsoma.txt
    ├── build (ubuntu-24.04, 3.10)  lint
    ├── build (ubuntu-24.04, 3.11)  build
    │   ├── 10_Show package versions.txt
    │   ├── 11_Show XCode version.txt
    │   ├── 12_Log pip dependencies.txt
    │   ├── 13_Run libtiledbsoma unit tests.txt
    │   ├── 14_Run pytests for Python.txt
    │   ├── 15_Report coverage to Codecov.txt
    │   ├── 1_Set up job.txt
    │   ├── 29_Post Set up Python 3.11.txt
    │   ├── 2_Show matrix OS.txt
    │   ├── 30_Post Checkout TileDB-SOMA.txt
    │   ├── 31_Complete job.txt
    │   ├── 3_Linux CPU info.txt
    │   ├── 6_Checkout TileDB-SOMA.txt
    │   ├── 7_Set Up Test Data.txt
    │   ├── 8_Set up Python 3.11.txt
    │   └── 9_Install tiledbsoma.txt
    ├── build (ubuntu-24.04, 3.11)  lint
    │   ├── 14_Post Restore pre-commit cache.txt
    │   ├── 15_Post Set up Python.txt
    │   ├── 16_Post Checkout TileDB-SOMA.txt
    │   ├── 17_Complete job.txt
    │   ├── 1_Set up job.txt
    │   ├── 2_Checkout TileDB-SOMA.txt
    │   ├── 3_Set up Python.txt
    │   ├── 4_Restore pre-commit cache.txt
    │   ├── 5_Install pre-commit.txt
    │   ├── 6_Log pip dependencies.txt
    │   ├── 7_Run pre-commit hooks on all files.txt
    │   └── 8_Check C++ Format.txt
    ├── build (ubuntu-24.04, 3.12)  build
    │   ├── 10_Show package versions.txt
    │   ├── 11_Show XCode version.txt
    │   ├── 12_Log pip dependencies.txt
    │   ├── 13_Run libtiledbsoma unit tests.txt
    │   ├── 14_Run pytests for Python.txt
    │   ├── 1_Set up job.txt
    │   ├── 29_Post Set up Python 3.12.txt
    │   ├── 2_Show matrix OS.txt
    │   ├── 30_Post Checkout TileDB-SOMA.txt
    │   ├── 31_Complete job.txt
    │   ├── 3_Linux CPU info.txt
    │   ├── 6_Checkout TileDB-SOMA.txt
    │   ├── 7_Set Up Test Data.txt
    │   ├── 8_Set up Python 3.12.txt
    │   └── 9_Install tiledbsoma.txt
    ├── build (ubuntu-24.04, 3.12)  lint
    ├── build (ubuntu-24.04, 3.13)  build
    │   ├── 10_Show package versions.txt
    │   ├── 11_Show XCode version.txt
    │   ├── 12_Log pip dependencies.txt
    │   ├── 13_Run libtiledbsoma unit tests.txt
    │   ├── 14_Run pytests for Python.txt
    │   ├── 1_Set up job.txt
    │   ├── 29_Post Set up Python 3.13.txt
    │   ├── 2_Show matrix OS.txt
    │   ├── 30_Post Checkout TileDB-SOMA.txt
    │   ├── 31_Complete job.txt
    │   ├── 3_Linux CPU info.txt
    │   ├── 6_Checkout TileDB-SOMA.txt
    │   ├── 7_Set Up Test Data.txt
    │   ├── 8_Set up Python 3.13.txt
    │   └── 9_Install tiledbsoma.txt
    ├── build (ubuntu-24.04, 3.13)  lint
    ├── build (ubuntu-24.04, 3.9)  build
    │   ├── 10_Show package versions.txt
    │   ├── 11_Show XCode version.txt
    │   ├── 12_Log pip dependencies.txt
    │   ├── 13_Run libtiledbsoma unit tests.txt
    │   ├── 14_Run pytests for Python.txt
    │   ├── 1_Set up job.txt
    │   ├── 29_Post Set up Python 3.9.txt
    │   ├── 2_Show matrix OS.txt
    │   ├── 30_Post Checkout TileDB-SOMA.txt
    │   ├── 31_Complete job.txt
    │   ├── 3_Linux CPU info.txt
    │   ├── 6_Checkout TileDB-SOMA.txt
    │   ├── 7_Set Up Test Data.txt
    │   ├── 8_Set up Python 3.9.txt
    │   └── 9_Install tiledbsoma.txt
    └── build (ubuntu-24.04, 3.9)  lint
    
  8. ryan-williams commented on Apr 24, 2025

    @ryan-williams
    Author

    41015499160

    Interesting catch! Re-stating the apparent issue:

    • 41015499160 is attempt 1 of 1 (of that job), in workflow run 14615136857
    • Other jobs in the workflow were re-run (due to 1st attempts failing), so "attempt 2" exists for them (but not for 41015499160)
    • By default, gh looks for the max attempt across jobs in the workflow (in this case 2), then looks for that attempt within each job (even if the job in question wasn't run that many times).
    • gh doesn't warn or error about it, silently fails but exits 0.

    The last 2 bullets each seem like potential standalone issues.

    Double-checking:

    cmd=(gh run -R single-cell-data/TileDB-SOMA view --log -j 41015499160)
    "${cmd[@]}"                   # ❌ no output, exits 0
    "${cmd[@]}" --attempt 1 | wc  # ✅ emits logs, as expected
    #    4233   50546  614051

    41013280987 / 41020345782

    re:

    I actually don't see the same _ usage as you, so perhaps you can double check that. Here's what I see when running gh run -R ryan-williams/TileDB-SOMA view --log -j 41020345782 (note no _ just blank):

    ➜  run-log-14620886373-1745418926 tree
    ...
    

    I'm unclear how you got from that gh run command to a tree-able directory, but here's my attempt at it:

    download_unzip_tree() {
      repo="$1"
      workflow="$2"
      gh api /repos/$repo/actions/runs/$workflow/logs > $workflow.zip
      unzip -d $workflow{,.zip} >/dev/null
      (cd $workflow && tree)
    }
    download_unzip_tree single-cell-data/TileDB-SOMA 14618823537
    .
    ├── 10_build (macos-latest, 3.13) _ build.txt
    ├── 12_build (ubuntu-24.04, 3.11) _ lint.txt
    ├── 13_build (ubuntu-24.04, 3.12) _ build.txt
    ├── 14_build (ubuntu-24.04, 3.10) _ build.txt
    ├── 15_build (macos-latest, 3.9) _ build.txt
    ├── 16_build (macos-latest, 3.10) _ build.txt
    ├── 18_build (ubuntu-24.04, 3.11) _ build.txt
    ├── 19_build (macos-latest, 3.11) _ build.txt
    ├── 7_build (ubuntu-24.04, 3.13) _ build.txt
    ├── 8_build (macos-latest, 3.12) _ build.txt
    ├── 9_build (ubuntu-24.04, 3.9) _ build.txt
    ├── build (macos-latest, 3.10) _ build
    │   └── system.txt
    ├── build (macos-latest, 3.11) _ build
    │   └── system.txt
    ├── build (macos-latest, 3.12) _ build
    │   └── system.txt
    ├── build (macos-latest, 3.13) _ build
    │   └── system.txt
    ├── build (macos-latest, 3.9) _ build
    │   └── system.txt
    ├── build (ubuntu-24.04, 3.10) _ build
    │   └── system.txt
    ├── build (ubuntu-24.04, 3.11) _ build
    │   └── system.txt
    ├── build (ubuntu-24.04, 3.11) _ lint
    │   └── system.txt
    ├── build (ubuntu-24.04, 3.12) _ build
    │   └── system.txt
    ├── build (ubuntu-24.04, 3.13) _ build
    │   └── system.txt
    └── build (ubuntu-24.04, 3.9) _ build
        └── system.txt
    
    12 directories, 22 files
    
    download_unzip_tree ryan-williams/TileDB-SOMA 14620886373
    .
    ├── -2147172352_build.txt
    ├── -2147188736_lint.txt
    ├── -2147205120_build.txt
    ├── -2147221504_lint.txt
    ├── -2147237888_build.txt
    ├── -2147254272_lint.txt
    ├── -2147270656_build.txt
    ├── -2147287040_lint.txt
    ├── -2147303424_build.txt
    ├── -2147319808_lint.txt
    ├── -2147336192_build.txt
    ├── -2147352576_lint.txt
    ├── -2147368960_build.txt
    ├── -2147385344_lint.txt
    ├── -2147401728_build.txt
    ├── -2147418112_lint.txt
    ├── -2147434496_build.txt
    ├── -2147450880_lint.txt
    ├── -2147467264_build.txt
    ├── -2147483648_lint.txt
    ├── 0_build (macos-latest, 3.10)  build.txt
    ├── 0_build (macos-latest, 3.11)  build.txt
    ├── 0_build (macos-latest, 3.12)  build.txt
    ├── 0_build (macos-latest, 3.13)  build.txt
    ├── 0_build (macos-latest, 3.9)  build.txt
    ├── 0_build (ubuntu-24.04, 3.10)  build.txt
    ├── 0_build (ubuntu-24.04, 3.11)  build.txt
    ├── 0_build (ubuntu-24.04, 3.11)  lint.txt
    ├── 0_build (ubuntu-24.04, 3.12)  build.txt
    ├── 0_build (ubuntu-24.04, 3.13)  build.txt
    ├── 0_build (ubuntu-24.04, 3.9)  build.txt
    ├── build (macos-latest, 3.10)  build
    │   ├── 1_Set up job.txt
    │   ├── 10_Show package versions.txt
    │   ├── 11_Show XCode version.txt
    │   ├── 12_Log pip dependencies.txt
    │   ├── 13_Run libtiledbsoma unit tests.txt
    │   ├── 14_Run pytests for Python.txt
    │   ├── 2_Show matrix OS.txt
    │   ├── 29_Post Set up Python 3.10.txt
    │   ├── 30_Post Checkout TileDB-SOMA.txt
    │   ├── 31_Complete job.txt
    │   ├── 4_MacOS CPU info.txt
    │   ├── 5_Select XCode version.txt
    │   ├── 6_Checkout TileDB-SOMA.txt
    │   ├── 7_Set Up Test Data.txt
    │   ├── 8_Set up Python 3.10.txt
    │   └── 9_Install tiledbsoma.txt
    ├── build (macos-latest, 3.10)  lint
    ├── build (macos-latest, 3.11)  build
    │   ├── 1_Set up job.txt
    │   ├── 10_Show package versions.txt
    │   ├── 11_Show XCode version.txt
    │   ├── 12_Log pip dependencies.txt
    │   ├── 13_Run libtiledbsoma unit tests.txt
    │   ├── 14_Run pytests for Python.txt
    │   ├── 2_Show matrix OS.txt
    │   ├── 29_Post Set up Python 3.11.txt
    │   ├── 30_Post Checkout TileDB-SOMA.txt
    │   ├── 31_Complete job.txt
    │   ├── 4_MacOS CPU info.txt
    │   ├── 5_Select XCode version.txt
    │   ├── 6_Checkout TileDB-SOMA.txt
    │   ├── 7_Set Up Test Data.txt
    │   ├── 8_Set up Python 3.11.txt
    │   └── 9_Install tiledbsoma.txt
    ├── build (macos-latest, 3.11)  lint
    ├── build (macos-latest, 3.12)  build
    │   ├── 1_Set up job.txt
    │   ├── 10_Show package versions.txt
    │   ├── 11_Show XCode version.txt
    │   ├── 12_Log pip dependencies.txt
    │   ├── 13_Run libtiledbsoma unit tests.txt
    │   ├── 14_Run pytests for Python.txt
    │   ├── 2_Show matrix OS.txt
    │   ├── 29_Post Set up Python 3.12.txt
    │   ├── 30_Post Checkout TileDB-SOMA.txt
    │   ├── 31_Complete job.txt
    │   ├── 4_MacOS CPU info.txt
    │   ├── 5_Select XCode version.txt
    │   ├── 6_Checkout TileDB-SOMA.txt
    │   ├── 7_Set Up Test Data.txt
    │   ├── 8_Set up Python 3.12.txt
    │   └── 9_Install tiledbsoma.txt
    ├── build (macos-latest, 3.12)  lint
    ├── build (macos-latest, 3.13)  build
    │   ├── 1_Set up job.txt
    │   ├── 10_Show package versions.txt
    │   ├── 11_Show XCode version.txt
    │   ├── 12_Log pip dependencies.txt
    │   ├── 13_Run libtiledbsoma unit tests.txt
    │   ├── 14_Run pytests for Python.txt
    │   ├── 2_Show matrix OS.txt
    │   ├── 29_Post Set up Python 3.13.txt
    │   ├── 30_Post Checkout TileDB-SOMA.txt
    │   ├── 31_Complete job.txt
    │   ├── 4_MacOS CPU info.txt
    │   ├── 5_Select XCode version.txt
    │   ├── 6_Checkout TileDB-SOMA.txt
    │   ├── 7_Set Up Test Data.txt
    │   ├── 8_Set up Python 3.13.txt
    │   └── 9_Install tiledbsoma.txt
    ├── build (macos-latest, 3.13)  lint
    ├── build (macos-latest, 3.9)  build
    │   ├── 1_Set up job.txt
    │   ├── 10_Show package versions.txt
    │   ├── 11_Show XCode version.txt
    │   ├── 12_Log pip dependencies.txt
    │   ├── 13_Run libtiledbsoma unit tests.txt
    │   ├── 14_Run pytests for Python.txt
    │   ├── 2_Show matrix OS.txt
    │   ├── 29_Post Set up Python 3.9.txt
    │   ├── 30_Post Checkout TileDB-SOMA.txt
    │   ├── 31_Complete job.txt
    │   ├── 4_MacOS CPU info.txt
    │   ├── 5_Select XCode version.txt
    │   ├── 6_Checkout TileDB-SOMA.txt
    │   ├── 7_Set Up Test Data.txt
    │   ├── 8_Set up Python 3.9.txt
    │   └── 9_Install tiledbsoma.txt
    ├── build (macos-latest, 3.9)  lint
    ├── build (ubuntu-24.04, 3.10)  build
    │   ├── 1_Set up job.txt
    │   ├── 10_Show package versions.txt
    │   ├── 11_Show XCode version.txt
    │   ├── 12_Log pip dependencies.txt
    │   ├── 13_Run libtiledbsoma unit tests.txt
    │   ├── 14_Run pytests for Python.txt
    │   ├── 2_Show matrix OS.txt
    │   ├── 29_Post Set up Python 3.10.txt
    │   ├── 3_Linux CPU info.txt
    │   ├── 30_Post Checkout TileDB-SOMA.txt
    │   ├── 31_Complete job.txt
    │   ├── 6_Checkout TileDB-SOMA.txt
    │   ├── 7_Set Up Test Data.txt
    │   ├── 8_Set up Python 3.10.txt
    │   └── 9_Install tiledbsoma.txt
    ├── build (ubuntu-24.04, 3.10)  lint
    ├── build (ubuntu-24.04, 3.11)  build
    │   ├── 1_Set up job.txt
    │   ├── 10_Show package versions.txt
    │   ├── 11_Show XCode version.txt
    │   ├── 12_Log pip dependencies.txt
    │   ├── 13_Run libtiledbsoma unit tests.txt
    │   ├── 14_Run pytests for Python.txt
    │   ├── 15_Report coverage to Codecov.txt
    │   ├── 2_Show matrix OS.txt
    │   ├── 29_Post Set up Python 3.11.txt
    │   ├── 3_Linux CPU info.txt
    │   ├── 30_Post Checkout TileDB-SOMA.txt
    │   ├── 31_Complete job.txt
    │   ├── 6_Checkout TileDB-SOMA.txt
    │   ├── 7_Set Up Test Data.txt
    │   ├── 8_Set up Python 3.11.txt
    │   └── 9_Install tiledbsoma.txt
    ├── build (ubuntu-24.04, 3.11)  lint
    │   ├── 1_Set up job.txt
    │   ├── 14_Post Restore pre-commit cache.txt
    │   ├── 15_Post Set up Python.txt
    │   ├── 16_Post Checkout TileDB-SOMA.txt
    │   ├── 17_Complete job.txt
    │   ├── 2_Checkout TileDB-SOMA.txt
    │   ├── 3_Set up Python.txt
    │   ├── 4_Restore pre-commit cache.txt
    │   ├── 5_Install pre-commit.txt
    │   ├── 6_Log pip dependencies.txt
    │   ├── 7_Run pre-commit hooks on all files.txt
    │   └── 8_Check C++ Format.txt
    ├── build (ubuntu-24.04, 3.12)  build
    │   ├── 1_Set up job.txt
    │   ├── 10_Show package versions.txt
    │   ├── 11_Show XCode version.txt
    │   ├── 12_Log pip dependencies.txt
    │   ├── 13_Run libtiledbsoma unit tests.txt
    │   ├── 14_Run pytests for Python.txt
    │   ├── 2_Show matrix OS.txt
    │   ├── 29_Post Set up Python 3.12.txt
    │   ├── 3_Linux CPU info.txt
    │   ├── 30_Post Checkout TileDB-SOMA.txt
    │   ├── 31_Complete job.txt
    │   ├── 6_Checkout TileDB-SOMA.txt
    │   ├── 7_Set Up Test Data.txt
    │   ├── 8_Set up Python 3.12.txt
    │   └── 9_Install tiledbsoma.txt
    ├── build (ubuntu-24.04, 3.12)  lint
    ├── build (ubuntu-24.04, 3.13)  build
    │   ├── 1_Set up job.txt
    │   ├── 10_Show package versions.txt
    │   ├── 11_Show XCode version.txt
    │   ├── 12_Log pip dependencies.txt
    │   ├── 13_Run libtiledbsoma unit tests.txt
    │   ├── 14_Run pytests for Python.txt
    │   ├── 2_Show matrix OS.txt
    │   ├── 29_Post Set up Python 3.13.txt
    │   ├── 3_Linux CPU info.txt
    │   ├── 30_Post Checkout TileDB-SOMA.txt
    │   ├── 31_Complete job.txt
    │   ├── 6_Checkout TileDB-SOMA.txt
    │   ├── 7_Set Up Test Data.txt
    │   ├── 8_Set up Python 3.13.txt
    │   └── 9_Install tiledbsoma.txt
    ├── build (ubuntu-24.04, 3.13)  lint
    ├── build (ubuntu-24.04, 3.9)  build
    │   ├── 1_Set up job.txt
    │   ├── 10_Show package versions.txt
    │   ├── 11_Show XCode version.txt
    │   ├── 12_Log pip dependencies.txt
    │   ├── 13_Run libtiledbsoma unit tests.txt
    │   ├── 14_Run pytests for Python.txt
    │   ├── 2_Show matrix OS.txt
    │   ├── 29_Post Set up Python 3.9.txt
    │   ├── 3_Linux CPU info.txt
    │   ├── 30_Post Checkout TileDB-SOMA.txt
    │   ├── 31_Complete job.txt
    │   ├── 6_Checkout TileDB-SOMA.txt
    │   ├── 7_Set Up Test Data.txt
    │   ├── 8_Set up Python 3.9.txt
    │   └── 9_Install tiledbsoma.txt
    └── build (ubuntu-24.04, 3.9)  lint
    
    21 directories, 199 files
    

    The latter seems to match what you showed, while the former (which gh fails to show logs for) has a different structure.

    Previously, I was looking at log archives downloaded from this web UI button:

    Image

    The URLs it currently shows me are:

    I didn't find a way to programmatically access those URLs, but downloading them again (via the web UI) yields .zip with the structure I showed before:

    id=37564081503; unzip -d $id logs_$id.zip && tree $id
    37564081503
    ├── 10_build (macos-latest, 3.13) _ build.txt
    ├── 12_build (ubuntu-24.04, 3.11) _ lint.txt
    ├── 13_build (ubuntu-24.04, 3.12) _ build.txt
    ├── 14_build (ubuntu-24.04, 3.10) _ build.txt
    ├── 15_build (macos-latest, 3.9) _ build.txt
    ├── 16_build (macos-latest, 3.10) _ build.txt
    ├── 18_build (ubuntu-24.04, 3.11) _ build.txt
    ├── 19_build (macos-latest, 3.11) _ build.txt
    ├── 7_build (ubuntu-24.04, 3.13) _ build.txt
    ├── 8_build (macos-latest, 3.12) _ build.txt
    ├── 9_build (ubuntu-24.04, 3.9) _ build.txt
    ├── build (macos-latest, 3.10) _ build
    │   └── system.txt
    ├── build (macos-latest, 3.11) _ build
    │   └── system.txt
    ├── build (macos-latest, 3.12) _ build
    │   └── system.txt
    ├── build (macos-latest, 3.13) _ build
    │   └── system.txt
    ├── build (macos-latest, 3.9) _ build
    │   └── system.txt
    ├── build (ubuntu-24.04, 3.10) _ build
    │   └── system.txt
    ├── build (ubuntu-24.04, 3.11) _ build
    │   └── system.txt
    ├── build (ubuntu-24.04, 3.11) _ lint
    │   └── system.txt
    ├── build (ubuntu-24.04, 3.12) _ build
    │   └── system.txt
    ├── build (ubuntu-24.04, 3.13) _ build
    │   └── system.txt
    └── build (ubuntu-24.04, 3.9) _ build
        └── system.txt
    
    12 directories, 22 files
    
    id=37569792382; unzip -d $id logs_$id.zip && tree $id
    37569792382
    ├── 0_build (macos-latest, 3.10) _ build.txt
    ├── 10_build (ubuntu-24.04, 3.10) _ build.txt
    ├── 12_build (ubuntu-24.04, 3.11) _ build.txt
    ├── 13_build (ubuntu-24.04, 3.11) _ lint.txt
    ├── 14_build (ubuntu-24.04, 3.12) _ build.txt
    ├── 16_build (ubuntu-24.04, 3.13) _ build.txt
    ├── 19_build (ubuntu-24.04, 3.9) _ build.txt
    ├── 2_build (macos-latest, 3.11) _ build.txt
    ├── 5_build (macos-latest, 3.12) _ build.txt
    ├── 6_build (macos-latest, 3.13) _ build.txt
    └── 8_build (macos-latest, 3.9) _ build.txt
    
    1 directory, 11 files
    

    The significance of the different log-archive structures isn't clear to me, but sounds like you have some leads re: log-server changes behind the scenes, hopefully something here is helpful!

  9. babakks commented on Apr 25, 2025

    @babakks
    Member

    Great investigation! Big thanks to @ryan-williams and @williammartin! 🎉

    @ruan-williams It seems like your issue with the missing logs is now partially sorted by using the --attempt option. There's still a problem with the old-vs-new services that we need to fix, and I'm going to open another issue for it to make it easier to follow the thread since here we're dealing with two different problems.

    UPDATE: I just created #10868.

  10. kperkins-godaddy commented on May 28, 2025

    @kperkins-godaddy

    I'm seeing this as well, and it's clearly a CLI problem given what I see here:

    $ gh run view --log --job=43070020934 | wc -l 
           0
    $ gh api repos/<redacted>/<redacted>/actions/jobs/43070020934/logs | wc -l
        1574
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingneeds-triageneeds to be reviewedplatformProblems with the GitHub platform rather than the CLI client

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions