-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Name of sample affected
python/agents/data-science/
Description of issue
when requesting big query, I get the following issue
{"error": "Object of type Decimal is not JSON serializable"}
Environment
- OS & Architecture: Redhat 9.5
- Python version: [e.g. 3.12]
Big query has fields of type NUMERIC, for example : INCIDENTNUMBER (NUMERIC)
Sample code has not been changed.
Error log
<img width="562" height="491" alt="Image" src="https://github.com/user-attachments/assets/e0d4e6dd-19de-4eaa-b2fc-1be443538839" />
2025-08-19 10:24:25,097 - ERROR - fast_api.py:889 - Error in event_generator: Object of type Decimal is not JSON serializable
Traceback (most recent call last):
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/adk/cli/fast_api.py", line 877, in event_generator
async for event in runner.run_async(
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/adk/runners.py", line 233, in run_async
async for event in self._exec_with_plugin(
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/adk/runners.py", line 273, in _exec_with_plugin
async for event in execute_fn(invocation_context):
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/adk/runners.py", line 230, in execute
async for event in ctx.agent.run_async(ctx):
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/adk/agents/base_agent.py", line 208, in run_async
async for event in self._run_async_impl(ctx):
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/adk/agents/llm_agent.py", line 283, in _run_async_impl
async for event in self._llm_flow.run_async(ctx):
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/adk/flows/llm_flows/base_llm_flow.py", line 283, in run_async
async for event in self._run_one_step_async(invocation_context):
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/adk/flows/llm_flows/base_llm_flow.py", line 315, in _run_one_step_async
async for event in self._postprocess_async(
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/adk/flows/llm_flows/base_llm_flow.py", line 388, in _postprocess_async
async for event in self._postprocess_handle_function_calls_async(
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/adk/flows/llm_flows/base_llm_flow.py", line 463, in _postprocess_handle_function_calls_async
if function_response_event := await functions.handle_function_calls_async(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/adk/flows/llm_flows/functions.py", line 179, in handle_function_calls_async
function_response = await __call_tool_async(
^^^^^^^^^^^^^^^^^^^^^^^^
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/adk/flows/llm_flows/functions.py", line 480, in __call_tool_async
return await tool.run_async(args=args, tool_context=tool_context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/adk/tools/function_tool.py", line 116, in run_async
return await self.func(**args_to_call)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/workspaces/data-science-adk/data-science/data_science/tools.py", line 39, in call_db_agent
db_agent_output = await agent_tool.run_async(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/adk/tools/agent_tool.py", line 128, in run_async
async for event in runner.run_async(
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/adk/runners.py", line 233, in run_async
async for event in self._exec_with_plugin(
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/adk/runners.py", line 273, in _exec_with_plugin
async for event in execute_fn(invocation_context):
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/adk/runners.py", line 230, in execute
async for event in ctx.agent.run_async(ctx):
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/adk/agents/base_agent.py", line 208, in run_async
async for event in self._run_async_impl(ctx):
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/adk/agents/llm_agent.py", line 283, in _run_async_impl
async for event in self._llm_flow.run_async(ctx):
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/adk/flows/llm_flows/base_llm_flow.py", line 283, in run_async
async for event in self._run_one_step_async(invocation_context):
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/adk/flows/llm_flows/base_llm_flow.py", line 311, in _run_one_step_async
async for llm_response in self._call_llm_async(
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/adk/flows/llm_flows/base_llm_flow.py", line 537, in _call_llm_async
async for llm_response in llm.generate_content_async(
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/adk/models/google_llm.py", line 175, in generate_content_async
response = await self.api_client.aio.models.generate_content(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/genai/models.py", line 7267, in generate_content
response = await self._generate_content(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/genai/models.py", line 6234, in _generate_content
response = await self._api_client.async_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/genai/_api_client.py", line 1111, in async_request
result = await self._async_request(http_request=http_request, stream=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/genai/_api_client.py", line 1056, in _async_request
return await self._async_retry( # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/tenacity/asyncio/__init__.py", line 111, in __call__
do = await self.iter(retry_state=retry_state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/tenacity/asyncio/__init__.py", line 153, in iter
result = await action(retry_state)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/tenacity/_utils.py", line 99, in inner
return call(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/tenacity/__init__.py", line 418, in exc_check
raise retry_exc.reraise()
^^^^^^^^^^^^^^^^^^^
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/tenacity/__init__.py", line 185, in reraise
raise self.last_attempt.result()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.12/concurrent/futures/_base.py", line 449, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.12/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/tenacity/asyncio/__init__.py", line 114, in __call__
result = await fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/genai/_api_client.py", line 983, in _async_request_once
data = json.dumps(http_request.data) if http_request.data else None
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.12/json/__init__.py", line 231, in dumps
return _default_encoder.encode(obj)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.12/json/encoder.py", line 200, in encode
chunks = self.iterencode(o, _one_shot=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.12/json/encoder.py", line 258, in iterencode
return _iterencode(o, 0)
^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.12/json/encoder.py", line 180, in default
raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type Decimal is not JSON serializable
2025-08-19 10:24:25,101 - ERROR - __init__.py:157 - Failed to detach context
Traceback (most recent call last):
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/opentelemetry/trace/__init__.py", line 589, in use_span
yield span
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/opentelemetry/sdk/trace/__init__.py", line 1105, in start_as_current_span
yield span
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/opentelemetry/trace/__init__.py", line 454, in start_as_current_span
yield span
File "/workspaces/data-science-adk/data-science/.venv/lib64/python3.12/site-packages/google/adk/flows/llm_flows/base_llm_flow.py", line 554, in _call_llm_async
yield llm_response
GeneratorExit
didmaipro
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working