Repository navigation
Conversation
vonovak
force-pushed
the
vonovak/json-error-codes
branch
from
October 9, 2026 19:43
390f744 to
5232cfb
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## vonovak/json-error-output #4594 +/- ##
============================================================
Coverage ? 74.06%
============================================================
Files ? 1018
Lines ? 49572
Branches ? 10691
============================================================
Hits ? 36711
Misses ? 11868
Partials ? 993 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
vonovak
added this pull request to stack #4595
October 9, 2026 19:52
A program that reads the --json error must still match the message to tell a project that is not linked from a run that is not logged in. - EasCommandError takes an optional code. - getUnconfiguredProjectError: EAS_PROJECT_NOT_CONFIGURED. - Non-interactive login prompt: EAS_LOGIN_REQUIRED (oclif's own code option on Errors.error). - EasCommand.catch prints the code of an EasCommandError or CLIError. GraphQL error codes stay out: they belong to the server. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
vonovak
force-pushed
the
vonovak/json-error-codes
branch
from
October 12, 2026 08:04
5232cfb to
a27a7f5
Compare
|
✅ Thank you for adding the changelog entry! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
#4593 prints
{"error": {"message", "requestId"?}}when a--jsoncommand fails. A program must still match the message text to tell a project that is not linked from a run that is not logged in. In expo/expo-agent-cli, those two failures each get their own fix, and today it matchesEAS project not configuredand the login sentence.Stacked on #4593. This is the fourth PR in the stack: #4591 ← #4592 ← #4593 ← #4594 (this PR). It is separate because codes become a public contract. The eas-cli team decides whether eas-cli wants to keep these codes stable. #4591–#4593 do not depend on this PR.
How
EasCommandErrortakes an optionalcode.EAS_PROJECT_NOT_CONFIGURED:getUnconfiguredProjectErrorreturns anEasCommandErrorwith this code. It covers its three callers.EAS_LOGIN_REQUIRED: the non-interactive login prompt inSessionManagerpasses oclif's owncodeoption toErrors.error.EasCommand.catchaddscodeto the JSON error for anEasCommandErroror an oclifCLIError.Errors.exit(EEXIT) is handled before that and has no code.errorCodevalues are not printed. They belong to the server, and a server rename would break programs that read--json.Open questions for the eas-cli team:
LLM Authorship
Test Plan
EasCommandtests: the code of anEasCommandErrorand of an oclifCLIErroris printed. A GraphQL error prints its request ID and no code.Errors.exithas no code.getProjectIdAsynctest: the non-interactive error hascode: 'EAS_PROJECT_NOT_CONFIGURED'.SessionManagertest:showLoginPromptAsync({ nonInteractive: true })rejects withcode: 'EAS_LOGIN_REQUIRED'and does not prompt.build:list --json --non-interactive: stdout is{"error": {"message": "Either log in with eas login or set the EXPO_TOKEN ...", "code": "EAS_LOGIN_REQUIRED"}}.tsc,oxlintandoxfmtare clean.🤖 Generated with Claude Code