fix(workspace): rename supported_protocols → supported_interfaces (CRITICAL — every boot crashes) - #2182
Merged
Conversation
…a-sdk 1.0) CRITICAL: every workspace boot since the a2a-sdk 1.0 migration (#1974) has been crashing at AgentCard construction with: ValueError: Protocol message AgentCard has no "supported_protocols" field The protobuf field is `supported_interfaces` (plural, interfaces — see a2a-sdk types/a2a_pb2.pyi:189). The 0.3→1.0 migration left the kwarg as `supported_protocols`, which doesn't exist in the 1.0 schema, so the constructor raises before any subsequent line of main runs. Why this hid for so long: - publish-runtime.yml's smoke step only IMPORTED molecule_runtime.main; importing the module is fine, only CONSTRUCTING the AgentCard fails - The user-visible symptom is "Workspace failed: " with empty last_sample_error, indistinguishable from generic boot timeouts - The state_transition_history=True bug (fixed in #2179) was a sibling of this — same migration, same class, just caught first Fix is symmetric with #2179: 1. workspace/main.py: rename the kwarg + comment explaining why 2. .github/workflows/publish-runtime.yml: extend the smoke block to instantiate AgentCard with the exact production call shape, so the next field-rename of this class fails at publish time instead of breaking every workspace startup Verification: - Constructed AgentCard against fresh a2a-sdk 1.0.2 in a clean venv with the corrected kwarg → succeeds - Constructed it with the original `supported_protocols` kwarg → fails immediately with the exact error production sees - Smoke test pinned to mirror main.py's exact call shape; main.py + smoke must stay in lockstep going forward Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
HongmingWang-Rabbit
requested a review
from hongmingwang-moleculeai
as a code owner
April 27, 2026 14:54
HongmingWang-Rabbit
enabled auto-merge
April 27, 2026 14:54
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.
Summary
CRITICAL: every workspace boot since the a2a-sdk 1.0 migration (#1974) has been crashing at
AgentCardconstruction with:The protobuf field is
supported_interfaces(plural, interfaces — verified againsta2a-sdk types/a2a_pb2.pyi:189). The 0.3→1.0 migration left the kwarg assupported_protocols, which doesn't exist in the 1.0 schema, so the constructor raises before any subsequent line ofmain()runs.Why this hid for weeks
publish-runtime.yml's smoke step only importedmolecule_runtime.main; importing the module is fine, only constructing the AgentCard fails"Workspace failed: "with emptylast_sample_error— indistinguishable from generic boot timeoutsstate_transition_history=Truebug (fixed in fix: drop state_transition_history (removed in a2a-sdk 1.x) #2179) was a sibling of this — same migration, same class, just caught firstLikely impact on recent CI failures
This is plausibly the root cause of the persistent staging failures we've been seeing:
"Workspace failed: "with empty errorrunning, downstream tenant DELETE behavior diverges)I'm not 100% certain this single fix unblocks all three — there could be more bugs of the same class — but every boot has been crashing here, so fixing it removes one entire layer of failure.
Fix is symmetric with #2179
workspace/main.py: rename the kwarg + add a comment explaining why.github/workflows/publish-runtime.yml: extend the smoke block to instantiateAgentCardwith the exact production call shape, so the next field-rename of this class fails at publish time instead of breaking every workspace startupVerification
I built a clean venv on a2a-sdk 1.0.2 and ran the constructor:
The smoke test in
publish-runtime.ymlis now a structural lock —main.pyand the smoke MUST stay in lockstep. Adding a kwarg to one without mirroring it here is the regression vector for this class of bug.🤖 Generated with Claude Code