Uh oh!
There was an error while loading. Please reload this page.
fix: handle GitHub OIDC format and error handling - #37889
Conversation
xinyi688life
commented
Jul 29, 2026
i am sorry, i can not execute action success with anomalyco/opencode/github@dev or anomalyco/opencode/github@main,can you tell me how to fix it with my workflow config? name: opencode on: jobs: |
User xinyi688life does not have write permissions |
xinyi688life
commented
Jul 29, 2026
Run anomalyco/opencode/github@dev Cache opencode |
chAwater
commented
Jul 29, 2026
@xinyi688life, just set the If this helped you, please add 👍 emoji to the PR, thanks 🙏 |
0xjei
commented
Jul 31, 2026
bump! the usage of Github Token is a workaround but makes things badly configured since we pass from the action instead of the agent. |
appspringtech
commented
Aug 1, 2026
anyway to help and get this released asap? |
chAwater
commented
Aug 6, 2026
bump this PR and rebased the branch to the latest |
Issue for this PR
Closes#37823
Type of change
What does this PR do?
The GitHub OIDC tokens changed from
repo:octocat/my-repo:ref:refs/heads/maintorepo:octocat@123456/my-repo@456789:ref:refs/heads/main(according to the GitHub changelog), breaking theexchange_github_app_tokenendpoint and causing a cryptic failure chain in the GitHub Action log.The root cause is a three-link chain (detailed analysis in the issue #37823):
api.ts— owner/repo parsed incorrectly from new sub formatNew format
repo:octocat@123456/my-repo@456789:ref:…was split as-is, producingoctocat@123456/my-repo@456789, which fails the installation lookup.api.ts— uncaught installation lookup error returns non-JSON 500The failed
getRepoInstallationcall throws through Hono without a catch, so the client receives an HTML/text error page.github.handler.ts— client assumes JSON response, masks the real errorresponse.json()fails on the text body →Failed to parse JSON. Then the catch block callscreateCommentwith an uninitializedoctoRest→undefined is not an object (evaluating 'p.rest'), which buries the real cause.This PR fixes the parsing of new OIDC tokens and adding error handling to expose the real error message.
How did you verify your code works?
The
api.tscannot be tested end-to-end before deployment.I only tested the error handling part using a test repo with test workflow: GitHub Actions logs
Screenshots / recordings
None
Checklist