Infinite recursion when deploying to agent engine

I’m using the following deploy code :

=========================================================================
import vertexai
from agent import root_agent # modify this if your agent is not in agent.py
from vertexai.preview.reasoning_engines import AdkApp

PROJECT_ID ="
LOCATION = “us-central1” # For other options, see Vertex AI Agent Engine overview  |  Generative AI on Vertex AI  |  Google Cloud
STAGING_BUCKET = “”

Initialize the Vertex AI SDK

vertexai.init(
project=PROJECT_ID,
location=LOCATION,
staging_bucket=STAGING_BUCKET,
)

from vertexai import agent_engines

Wrap the agent in an AdkApp object

app = AdkApp(
agent=root_agent,
enable_tracing=True,
)

remote_app = agent_engines.create(
agent_engine=app,
requirements=[
“google-cloud-aiplatform[adk,agent_engines]”
]
)

print(f"Deployment finished!“)
print(f"Resource Name: {remote_app.resource_name}”)

I get the following error:
python deploy.py
Creating Extension
Traceback (most recent call last):
File “adk_agents/adk_samples/agents/data-science/data_science/deploy.py”, line 26, in
remote_app = agent_engines.create(
^^^^^^^^^^^^^^^^^^^^^
File “venv_adk_agents/lib/python3.11/site-packages/vertexai/agent_engines/init.py”, line 194, in create
return AgentEngine.create(
^^^^^^^^^^^^^^^^^^^
File “venv_adk_agents/lib/python3.11/site-packages/vertexai/agent_engines/_agent_engines.py”, line 517, in create
agent_engine = _validate_agent_engine_or_raise(agent_engine)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “venv_adk_agents/lib/python3.11/site-packages/vertexai/agent_engines/_agent_engines.py”, line 1054, in _validate_agent_engine_or_raise
agent_engine = agent_engine.clone()
^^^^^^^^^^^^^^^^^^^^
File “venv_adk_agents/lib/python3.11/site-packages/vertexai/preview/reasoning_engines/templates/adk.py”, line 477, in clone
agent=copy.deepcopy(self._tmpl_attrs.get(“agent”)),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “miniconda3/lib/python3.11/copy.py”, line 153, in deepcopy
y = copier(memo)
^^^^^^^^^^^^
File “venv_adk_agents/lib/python3.11/site-packages/pydantic/main.py”, line 940, in deepcopy
_object_setattr(m, ‘dict’, deepcopy(self.dict, memo=memo))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “miniconda3/lib/python3.11/copy.py”, line 146, in deepcopy
y = copier(x, memo)
^^^^^^^^^^^^^^^
File “miniconda3/lib/python3.11/copy.py”, line 231, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
^^^^^^^^^^^^^^^^^^^^^
File “miniconda3/lib/python3.11/copy.py”, line 146, in deepcopy
y = copier(x, memo)
^^^^^^^^^^^^^^^
File “miniconda3/lib/python3.11/copy.py”, line 206, in _deepcopy_list
append(deepcopy(a, memo))
^^^^^^^^^^^^^^^^^
File “miniconda3/lib/python3.11/copy.py”, line 153, in deepcopy
y = copier(memo)
^^^^^^^^^^^^
File “venv_adk_agents/lib/python3.11/site-packages/pydantic/main.py”, line 940, in deepcopy
_object_setattr(m, ‘dict’, deepcopy(self.dict, memo=memo))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “miniconda3/lib/python3.11/copy.py”, line 146, in deepcopy
y = copier(x, memo)
^^^^^^^^^^^^^^^
File “miniconda3/lib/python3.11/copy.py”, line 231, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
^^^^^^^^^^^^^^^^^^^^^
File “miniconda3/lib/python3.11/copy.py”, line 153, in deepcopy
y = copier(memo)
^^^^^^^^^^^^
File “venv_adk_agents/lib/python3.11/site-packages/pydantic/main.py”, line 952, in deepcopy
deepcopy({k: v for k, v in self.pydantic_private.items() if v is not PydanticUndefined}, memo=memo),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “miniconda3/lib/python3.11/copy.py”, line 146, in deepcopy
y = copier(x, memo)
^^^^^^^^^^^^^^^
File “miniconda3/lib/python3.11/copy.py”, line 231, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
^^^^^^^^^^^^^^^^^^^^^
File “miniconda3/lib/python3.11/copy.py”, line 172, in deepcopy
y = _reconstruct(x, memo, *rv)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File “miniconda3/lib/python3.11/copy.py”, line 271, in _reconstruct
state = deepcopy(state, memo)
^^^^^^^^^^^^^^^^^^^^^
File “miniconda3/lib/python3.11/copy.py”, line 146, in deepcopy
y = copier(x, memo)
^^^^^^^^^^^^^^^
File “miniconda3/lib/python3.11/copy.py”, line 231, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
^^^^^^^^^^^^^^^^^^^^^
File “miniconda3/lib/python3.11/copy.py”, line 172, in deepcopy
y = _reconstruct(x, memo, *rv)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File “miniconda3/lib/python3.11/copy.py”, line 271, in _reconstruct
state = deepcopy(state, memo)
^^^^^^^^^^^^^^^^^^^^^
File “miniconda3/lib/python3.11/copy.py”, line 146, in deepcopy
y = copier(x, memo)
^^^^^^^^^^^^^^^
File “miniconda3/lib/python3.11/copy.py”, line 231, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
^^^^^^^^^^^^^^^^^^^^^
File “miniconda3/lib/python3.11/copy.py”, line 146, in deepcopy
y = copier(x, memo)
^^^^^^^^^^^^^^^
File “miniconda3/lib/python3.11/copy.py”, line 231, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
^^^^^^^^^^^^^^^^^^^^^
File “miniconda3/lib/python3.11/copy.py”, line 172, in deepcopy
y = _reconstruct(x, memo, *rv)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File “miniconda3/lib/python3.11/copy.py”, line 272, in _reconstruct
if hasattr(y, ‘setstate’):
^^^^^^^^^^^^^^^^^^^^^^^^^^
File “venv_adk_agents/lib/python3.11/site-packages/google/cloud/aiplatform/utils/init.py”, line 494, in getattr
credentials=self._credentials,
^^^^^^^^^^^^^^^^^
File “venv_adk_agents/lib/python3.11/site-packages/google/cloud/aiplatform/utils/init.py”, line 494, in getattr
credentials=self._credentials,
^^^^^^^^^^^^^^^^^
File “venv_adk_agents/lib/python3.11/site-packages/google/cloud/aiplatform/utils/init.py”, line 494, in getattr
credentials=self._credentials,
^^^^^^^^^^^^^^^^^
[Previous line repeated 966 more times]
RecursionError: maximum recursion depth exceeded

To Reproduce
Please share a minimal code and data to reproduce your problem.
Steps to reproduce the behavior:

  1. Install
    uvx agent-starter-pack enhance --adk -d agent_engine
    pip install google-cloud-aiplatform[adk,agent_engines]>=1.111
  2. Run gcloud auth application-default login
    3.Expected behavior*
    A clear and concise description of what you expected to happen.
    My agent(root-agent) should get deployed to the agent engine on gcp.
  • OS: [e.g. macOS, Linux, Windows] - Ubuntu 25.04
  • Python version(python -V): Python 3.11.11
  • ADK version(pip show google-adk):
    pip show google-adk
    Name: google-adk
    Version: 1.14.0
    Summary: Agent Development Kit
    Home-page:
    Author: