Repository navigation
fix: fail the app when CONFIG_SVC config load fails - #28
Merged
Merged
Conversation
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Contributor
Author
Research ReviewVerified
Contract diff
Existing consumers
Adjacent Stubs Detected
Orphaned Files Detected
Escape Hatch Coverage
Object Shape Verification
Needs Verification (non-blocking)
Impact Analysis
Risks Not Tested
Research Suggestions
VerdictNo blocking issues found. Reviewed by PR Research Validator. This review checks whether code is based on verified sources rather than assumptions. |
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.
Closes #26
Implements the architect triage as approved by birme: A1 (empty store is not a failure), B (exit non-zero, no /healthz requirement), C (no retry), D (unchanged).
Changes
scripts/docker-entrypoint.shconfig block: stdout and stderr captured separately; timeout exits 124, non-zero exit propagates its code, non-empty output with no valid exports exits 1; all print[CONFIG] ERRORand exit beforepip install. Expired-token output adds arefresh-app-confighint.has no parametersand continues.grepunderset -eis guarded (previously silently exited 1 on no match); comment extended.tests/test-entrypoint-config-load-failure.shruns the real extracted block with stub npx/curl/timeout: timeout, non-zero exit, garbled output (fail) and empty store, stderr-only noise, success, no CONFIG_SVC (pass).What changes for existing consumers
Apps without
CONFIG_SVC/OSC_ACCESS_TOKEN: nothing. Apps bound to an empty store: previously a silent crash loop, now start. Apps whose store is unreachable, deleted or has an expired token: previously started without env vars, now exit non-zero on boot (kubelet restart loop, shows as "building" in My Apps).Manual follow-up: a release and a remake of the python-runner service are needed before this reaches prod; not done here.
Lessons
Under
set -e,x=$(cmd | grep ...)kills the script silently on no match, so the empty-store case was already an unlogged crash loop rather than "continue" as the ticket claimed.🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com