fix: use correct 'content' key in AgentEngineSandboxCodeExecutor input files#5912
Open
Thapza888 wants to merge 2 commits into
Open
fix: use correct 'content' key in AgentEngineSandboxCodeExecutor input files#5912Thapza888 wants to merge 2 commits into
Thapza888 wants to merge 2 commits into
Conversation
…t files
The AgentEngineSandboxCodeExecutor builds input file payloads with key 'contents' (plural), but the Vertex AI SDK reads 'content' (singular). This causes file.get('content', b'') to always return empty bytes — all input files are silently created as zero bytes in the sandbox with SUCCESS status returned.
Fixes the same root cause as PR google#5505 which fixed this in other files but missed agent_engine_sandbox_code_executor.py.
Ref: google#5500, google#5505, google#5824
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
Collaborator
|
Response from ADK Triaging Agent Hello @Thapza888, thank you for submitting this pull request to fix the sandbox code executor! To help us move forward with reviewing your contribution, please make sure the following guidelines from our Contribution Guidelines are met:
These steps help maintain high code quality and streamline the review process. Thanks again for your contribution! |
Verifies that AgentEngineSandboxCodeExecutor sends input_files with the 'content' key (singular), matching what the Vertex AI Sandbox API expects. Without this fix, file.get('content', b'') returns empty bytes and all input files are silently created empty.
Ref: google#5500, google#5505, google#5824
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.
Fixes the same root cause as #5505 which was missed in
agent_engine_sandbox_code_executor.py.Root Cause
AgentEngineSandboxCodeExecutorbuilds input file payloads with key'contents'(plural), but the Vertex AI SDK (sandboxes.py) reads'content'(singular). This causesfile.get("content", b"")to always return empty bytes -- all input files are silently created as zero bytes in the sandbox.The executor returns SUCCESS, so the failure is completely silent.
What changed
'contents'to'content'at line 183 ofagent_engine_sandbox_code_executor.py.Impact
Security policies, access-control templates, verification scripts, and boundary configuration files passed via
input_filesto the sandbox code executor are silently created as empty (zero-byte) resources. The sandbox executes untrusted code without the intended operational constraints. No error is raised -- the SUCCESS status blinds monitoring and logging.Testing Plan
Added regression test
test_execute_code_input_files_content_keythat verifiesexecute_codeis called withinput_datacontaining the'content'key (singular). The mock assertion explicitly checks:Before the fix, this test fails because the code sends
'contents'instead of'content'. After the fix, the test passes (will be verified in CI).References