fix: use correct 'content' key in AgentEngineSandboxCodeExecutor input files#5912
fix: use correct 'content' key in AgentEngineSandboxCodeExecutor input files#5912Thapza888 wants to merge 2 commits into
Conversation
|
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. |
|
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
|
Hi @Thapza888 , Thank you for your contribution! It appears you haven't yet signed the Contributor License Agreement (CLA). Please visit https://cla.developers.google.com/ to complete the signing process. Once the CLA is signed, we'll be able to proceed with the review of your PR. Thank you! |
…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
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
43b2601 to
4ce56e1
Compare
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