Skip to content

fix(genai): Prevent ADC lookup delay when initializing VertexAI with API key#1486

Open
ADITYAKUMARRAI2007 wants to merge 18 commits into
langchain-ai:mainfrom
ADITYAKUMARRAI2007:fix/vertexai-init-delay
Open

fix(genai): Prevent ADC lookup delay when initializing VertexAI with API key#1486
ADITYAKUMARRAI2007 wants to merge 18 commits into
langchain-ai:mainfrom
ADITYAKUMARRAI2007:fix/vertexai-init-delay

Merge branch 'main' into fix/vertexai-init-delay

803bb7f
Select commit
Loading
Failed to load commit list.
Google Cloud Build / langchain-google-genai-us (llm-integration-tests) failed Feb 1, 2026 in 23m 16s

Summary

Build Information

Trigger langchain-google-genai-us
Build 272e0491-eeb1-4a49-afe5-b96b95f9fb61
Start 2026-02-01T08:26:19-08:00
Duration 23m14.719s
Status FAILURE

Steps

Step Status Duration
integration tests FAILURE 22m58.492s

Details


starting build "272e0491-eeb1-4a49-afe5-b96b95f9fb61"

FETCHSOURCE
From https://github.com/langchain-ai/langchain-google
 * branch            803bb7fe3df519ecd12e3947b63ac901a807c8d8 -> FETCH_HEAD
HEAD is now at 803bb7f Merge branch 'main' into fix/vertexai-init-delay
GitCommit:
803bb7fe3df519ecd12e3947b63ac901a807c8d8
BUILD
Pulling image: python:3.11
3.11: Pulling from library/python
2ca1bfae7ba8: Already exists
82e18c5e1c15: Already exists
be442a7e0d6f: Already exists
26d823e3848f: Already exists
ce91906e19f2: Pulling fs layer
67374e68056b: Pulling fs layer
ee3ec68f096e: Pulling fs layer
ee3ec68f096e: Verifying Checksum
ee3ec68f096e: Download complete
ce91906e19f2: Verifying Checksum
ce91906e19f2: Download complete
67374e68056b: Verifying Checksum
67374e68056b: Download complete
ce91906e19f2: Pull complete
67374e68056b: Pull complete
ee3ec68f096e: Pull complete
Digest: sha256:8999a3987fa4c44ed479c07a8fe6921a9168454d4b9b49c3f41fda5db3beb4fa
Status: Downloaded newer image for python:3.11
docker.io/library/python:3.11
Using pip 24.0 from /usr/local/lib/python3.11/site-packages/pip (python 3.11)
Collecting uv==0.8.13
  Obtaining dependency information for uv==0.8.13 from https://files.pythonhosted.org/packages/82/6b/81387a715dd045f7edea452fb76a5896dcfc11b8ecf0db5106f4b0f633ec/uv-0.8.13-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
  Downloading uv-0.8.13-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)
Downloading uv-0.8.13-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.5 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 19.5/19.5 MB 83.6 MB/s eta 0:00:00
Installing collected packages: uv
Successfully installed uv-0.8.13
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

[notice] A new release of pip is available: 24.0 -> 26.0
[notice] To update, run: pip install --upgrade pip
Using CPython 3.11.14 interpreter at: /usr/local/bin/python3
Creating virtual environment at: .venv
Resolved 81 packages in 1ms
   Building langchain-google-genai @ file:///workspace/libs/genai
Downloading numpy (16.1MiB)
Downloading pydantic-core (2.0MiB)
Downloading pygments (1.2MiB)
Downloading zstandard (5.3MiB)
 Downloading pygments
 Downloading pydantic-core
 Downloading zstandard
      Built langchain-google-genai @ file:///workspace/libs/genai
 Downloading numpy
Prepared 67 packages in 1.95s
warning: Failed to hardlink files; falling back to full copy. This may lead to degraded performance.
         If the cache and target directories are on different filesystems, hardlinking may not be supported.
         If this is intentional, set `export UV_LINK_MODE=copy` or use `--link-mode=copy` to suppress this warning.
Installed 67 packages in 240ms
 + annotated-types==0.7.0
 + anyio==4.12.0
 + cachetools==6.2.2
 + certifi==2025.11.12
 + cffi==2.0.0
 + charset-normalizer==3.4.4
 + distro==1.9.0
 + filetype==1.2.0
 + freezegun==1.5.5
 + google-auth==2.45.0
 + google-genai==1.56.0
 + h11==0.16.0
 + httpcore==1.0.9
 + httpx==0.28.1
 + idna==3.11
 + iniconfig==2.3.0
 + jsonpatch==1.33
 + jsonpointer==3.0.0
 + langchain-core==1.2.5
 + langchain-google-genai==4.2.0 (from file:///workspace/libs/genai)
 + langchain-tests==1.1.2
 + langsmith==0.4.56
 + markdown-it-py==4.0.0
 + mdurl==0.1.2
 + multidict==6.7.0
 + numpy==2.3.5
 + orjson==3.11.5
 + packaging==25.0
 + pluggy==1.6.0
 + propcache==0.4.1
 + protobuf==6.33.2
 + py-cpuinfo==9.0.0
 + pyasn1==0.6.1
 + pyasn1-modules==0.4.2
 + pycparser==2.23
 + pydantic==2.12.5
 + pydantic-core==2.41.5
 + pygments==2.19.2
 + pytest==8.4.2
 + pytest-asyncio==0.26.0
 + pytest-benchmark==5.2.3
 + pytest-codspeed==4.2.0
 + pytest-mock==3.15.1
 + pytest-recording==0.13.4
 + pytest-retry==1.7.0
 + pytest-socket==0.7.0
 + pytest-watcher==0.4.3
 + python-dateutil==2.9.0.post0
 + pyyaml==6.0.3
 + requests==2.32.5
 + requests-toolbelt==1.0.0
 + rich==14.2.0
 + rsa==4.9.1
 + six==1.17.0
 + sniffio==1.3.1
 + syrupy==4.9.1
 + tenacity==9.1.2
 + typing-extensions==4.15.0
 + typing-inspection==0.4.2
 + urllib3==2.6.1
 + uuid-utils==0.12.0
 + vcrpy==7.0.0
 + watchdog==6.0.0
 + websockets==15.0.1
 + wrapt==2.0.1
 + yarl==1.22.0
 + zstandard==0.25.0
============================= test session starts ==============================
platform linux -- Python 3.11.14, pytest-8.4.2, pluggy-1.6.0
codspeed: 4.2.0 (disabled, mode: walltime, callgraph: not supported, timer_resolution: 1.0ns)
benchmark: 5.2.3 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /workspace/libs/genai
configfile: pyproject.toml
plugins: langsmith-0.4.56, asyncio-0.26.0, benchmark-5.2.3, codspeed-4.2.0, socket-0.7.0, mock-3.15.1, recording-0.13.4, syrupy-4.9.1, retry-1.7.0, anyio-4.12.0
asyncio: mode=Mode.AUTO, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function
collected 222 items

tests/integration_tests/test_callbacks.py .                              [  0%]
tests/integration_tests/test_chat_models.py ............................ [ 13%]
.....xX..............................................F.s.ss.             [ 40%]
tests/integration_tests/test_compile.py .                                [ 40%]
tests/integration_tests/test_embeddings.py ...........                   [ 45%]
tests/integration_tests/test_function_call.py ...                        [ 46%]
tests/integration_tests/test_llms.py ......                              [ 49%]
tests/integration_tests/test_standard.py .......ssss.................... [ 63%]
........ss...s.xx.......ssss.............................FFsFFFsF        [ 92%]
tests/integration_tests/test_structured_output_integration.py .......... [ 97%]
....                                                                     [ 99%]
tests/integration_tests/test_tools.py ..                                 [100%]

=================================== FAILURES ===================================
_______________________ test_context_caching[google_ai] ________________________
Traceback (most recent call last):
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/runner.py", line 344, in from_call
    result: TResult | None = func()
                             ^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/runner.py", line 246, in <lambda>
    lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_hooks.py", line 512, in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_manager.py", line 120, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 167, in _multicall
    raise exception
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
    yield
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
    return (yield)
            ^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
    return result.get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_result.py", line 103, in get_result
    raise exc.with_traceback(tb)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
    res = yield
          ^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/skipping.py", line 263, in pytest_runtest_call
    return (yield)
            ^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 121, in _multicall
    res = hook_impl.function(*args)
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/runner.py", line 178, in pytest_runtest_call
    item.runtest()
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/python.py", line 1671, in runtest
    self.ihook.pytest_pyfunc_call(pyfuncitem=self)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_hooks.py", line 512, in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_manager.py", line 120, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 167, in _multicall
    raise exception
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
    return result.get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_result.py", line 103, in get_result
    raise exc.with_traceback(tb)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
    res = yield
          ^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 121, in _multicall
    res = hook_impl.function(*args)
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/python.py", line 157, in pytest_pyfunc_call
    result = testfunction(**testargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/tests/integration_tests/test_chat_models.py", line 2521, in test_context_caching
    assert isinstance(response.content, str)
AssertionError: assert False
 +  where False = isinstance([{'extras': {'signature': 'Eu4ICusIAXLI2nzStWV9vve2EXlN2m3ZBhdcghw2Eji8HrXPO1Un4LafXZeZ/1RUFjN3ehE4JMxNklyNADqZ/b8cd6T...CODyCrF6CaePGkRLaMvFVsgAXqaxDvJa+RFq3JEb0WJHGsG4EwyQ1dFlvKsBUW'}, 'text': 'The secret number is 747.', 'type': 'text'}], str)
 +    where [{'extras': {'signature': 'Eu4ICusIAXLI2nzStWV9vve2EXlN2m3ZBhdcghw2Eji8HrXPO1Un4LafXZeZ/1RUFjN3ehE4JMxNklyNADqZ/b8cd6T...CODyCrF6CaePGkRLaMvFVsgAXqaxDvJa+RFq3JEb0WJHGsG4EwyQ1dFlvKsBUW'}, 'text': 'The secret number is 747.', 'type': 'text'}] = AIMessage(content=[{'type': 'text', 'text': 'The secret number is 747.', 'extras': {'signature': 'Eu4ICusIAXLI2nzStWV9... 254, 'total_tokens': 12230, 'input_token_details': {'cache_read': 11969}, 'output_token_details': {'reasoning': 245}}).content
____________ TestGeminiProStandardGoogleAI.test_image_tool_message _____________
Traceback (most recent call last):
  File "/workspace/libs/genai/langchain_google_genai/chat_models.py", line 3096, in _generate
    response: GenerateContentResponse = self.client.models.generate_content(
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/google/genai/models.py", line 5188, in generate_content
    return self._generate_content(
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/google/genai/models.py", line 3985, in _generate_content
    response = self._api_client.request(
               ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/google/genai/_api_client.py", line 1388, in request
    response = self._request(http_request, http_options, stream=False)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/google/genai/_api_client.py", line 1222, in _request
    return retry(self._request_once, http_request, stream)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 477, in __call__
    do = self.iter(retry_state=retry_state)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 378, in iter
    result = action(retry_state)
             ^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 420, in exc_check
    raise retry_exc.reraise()
          ^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 187, in reraise
    raise self.last_attempt.result()
          ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/concurrent/futures/_base.py", line 449, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 480, in __call__
    result = fn(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/google/genai/_api_client.py", line 1201, in _request_once
    errors.APIError.raise_for_response(response)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/google/genai/errors.py", line 121, in raise_for_response
    cls.raise_error(response.status_code, response_json, response)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/google/genai/errors.py", line 146, in raise_error
    raise ClientError(status_code, response_json, response)
google.genai.errors.ClientError: 429 RESOURCE_EXHAUSTED. {'error': {'code': 429, 'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_requests_per_model_per_day, limit: 0', 'status': 'RESOURCE_EXHAUSTED', 'details': [{'@type': 'type.googleapis.com/google.rpc.Help', 'links': [{'description': 'Learn more about Gemini API quotas', 'url': 'https://ai.google.dev/gemini-api/docs/rate-limits'}]}, {'@type': 'type.googleapis.com/google.rpc.QuotaFailure', 'violations': [{'quotaMetric': 'generativelanguage.googleapis.com/generate_requests_per_model_per_day', 'quotaId': 'GenerateRequestsPerDayPerProjectPerModel'}]}]}}

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/runner.py", line 344, in from_call
    result: TResult | None = func()
                             ^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/runner.py", line 246, in <lambda>
    lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_hooks.py", line 512, in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_manager.py", line 120, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 167, in _multicall
    raise exception
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
    yield
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
    return (yield)
            ^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
    return result.get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_result.py", line 103, in get_result
    raise exc.with_traceback(tb)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
    res = yield
          ^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/skipping.py", line 263, in pytest_runtest_call
    return (yield)
            ^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 121, in _multicall
    res = hook_impl.function(*args)
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/runner.py", line 178, in pytest_runtest_call
    item.runtest()
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/python.py", line 1671, in runtest
    self.ihook.pytest_pyfunc_call(pyfuncitem=self)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_hooks.py", line 512, in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_manager.py", line 120, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 167, in _multicall
    raise exception
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
    return result.get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_result.py", line 103, in get_result
    raise exc.with_traceback(tb)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
    res = yield
          ^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 121, in _multicall
    res = hook_impl.function(*args)
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/python.py", line 157, in pytest_pyfunc_call
    result = testfunction(**testargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/langchain_tests/integration_tests/chat_models.py", line 2908, in test_image_tool_message
    _ = model.bind_tools([random_image]).invoke(messages)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 5557, in invoke
    return self.bound.invoke(
           ^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/langchain_google_genai/chat_models.py", line 2584, in invoke
    return super().invoke(input, config, stop=stop, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/langchain_core/language_models/chat_models.py", line 398, in invoke
    self.generate_prompt(
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/langchain_core/language_models/chat_models.py", line 1117, in generate_prompt
    return self.generate(prompt_messages, stop=stop, callbacks=callbacks, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/langchain_core/language_models/chat_models.py", line 927, in generate
    self._generate_with_cache(
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/langchain_core/language_models/chat_models.py", line 1221, in _generate_with_cache
    result = self._generate(
             ^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/langchain_google_genai/chat_models.py", line 3100, in _generate
    _handle_client_error(e, request)
  File "/workspace/libs/genai/langchain_google_genai/chat_models.py", line 146, in _handle_client_error
    raise ChatGoogleGenerativeAIError(msg) from e
langchain_google_genai.chat_models.ChatGoogleGenerativeAIError: Error calling model 'gemini-3-pro-preview' (RESOURCE_EXHAUSTED): 429 RESOURCE_EXHAUSTED. {'error': {'code': 429, 'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_requests_per_model_per_day, limit: 0', 'status': 'RESOURCE_EXHAUSTED', 'details': [{'@type': 'type.googleapis.com/google.rpc.Help', 'links': [{'description': 'Learn more about Gemini API quotas', 'url': 'https://ai.google.dev/gemini-api/docs/rate-limits'}]}, {'@type': 'type.googleapis.com/google.rpc.QuotaFailure', 'violations': [{'quotaMetric': 'generativelanguage.googleapis.com/generate_requests_per_model_per_day', 'quotaId': 'GenerateRequestsPerDayPerProjectPerModel'}]}]}}
_____________ TestGeminiProStandardGoogleAI.test_pdf_tool_message ______________
Traceback (most recent call last):
  File "/workspace/libs/genai/langchain_google_genai/chat_models.py", line 3096, in _generate
    response: GenerateContentResponse = self.client.models.generate_content(
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/google/genai/models.py", line 5188, in generate_content
    return self._generate_content(
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/google/genai/models.py", line 3985, in _generate_content
    response = self._api_client.request(
               ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/google/genai/_api_client.py", line 1388, in request
    response = self._request(http_request, http_options, stream=False)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/google/genai/_api_client.py", line 1222, in _request
    return retry(self._request_once, http_request, stream)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 477, in __call__
    do = self.iter(retry_state=retry_state)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 378, in iter
    result = action(retry_state)
             ^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 420, in exc_check
    raise retry_exc.reraise()
          ^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 187, in reraise
    raise self.last_attempt.result()
          ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/concurrent/futures/_base.py", line 449, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 480, in __call__
    result = fn(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/google/genai/_api_client.py", line 1201, in _request_once
    errors.APIError.raise_for_response(response)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/google/genai/errors.py", line 121, in raise_for_response
    cls.raise_error(response.status_code, response_json, response)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/google/genai/errors.py", line 146, in raise_error
    raise ClientError(status_code, response_json, response)
google.genai.errors.ClientError: 429 RESOURCE_EXHAUSTED. {'error': {'code': 429, 'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_requests_per_model_per_day, limit: 0', 'status': 'RESOURCE_EXHAUSTED', 'details': [{'@type': 'type.googleapis.com/google.rpc.Help', 'links': [{'description': 'Learn more about Gemini API quotas', 'url': 'https://ai.google.dev/gemini-api/docs/rate-limits'}]}, {'@type': 'type.googleapis.com/google.rpc.QuotaFailure', 'violations': [{'quotaMetric': 'generativelanguage.googleapis.com/generate_requests_per_model_per_day', 'quotaId': 'GenerateRequestsPerDayPerProjectPerModel'}]}]}}

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/runner.py", line 344, in from_call
    result: TResult | None = func()
                             ^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/runner.py", line 246, in <lambda>
    lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_hooks.py", line 512, in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_manager.py", line 120, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 167, in _multicall
    raise exception
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
    yield
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
    return (yield)
            ^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
    return result.get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_result.py", line 103, in get_result
    raise exc.with_traceback(tb)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
    res = yield
          ^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/skipping.py", line 263, in pytest_runtest_call
    return (yield)
            ^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 121, in _multicall
    res = hook_impl.function(*args)
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/runner.py", line 178, in pytest_runtest_call
    item.runtest()
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/python.py", line 1671, in runtest
    self.ihook.pytest_pyfunc_call(pyfuncitem=self)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_hooks.py", line 512, in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_manager.py", line 120, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 167, in _multicall
    raise exception
  File "/workspace/libs/gen
...
[Logs truncated due to log size limitations. For full logs, see https://console.cloud.google.com/logs/viewer?advancedFilter=resource.type%3D%22build%22+AND+resource.labels.build_id%3D%22272e0491-eeb1-4a49-afe5-b96b95f9fb61%22+AND+resource.labels.build_trigger_id%3D%22cf0bf1b4-59b2-4ad2-9f4c-4866728a37b1%22&project=llm-integration-tests.]
...

          ^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/skipping.py", line 263, in pytest_runtest_call
    return (yield)
            ^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 121, in _multicall
    res = hook_impl.function(*args)
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/runner.py", line 178, in pytest_runtest_call
    item.runtest()
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/python.py", line 1671, in runtest
    self.ihook.pytest_pyfunc_call(pyfuncitem=self)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_hooks.py", line 512, in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_manager.py", line 120, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 167, in _multicall
    raise exception
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
    return result.get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_result.py", line 103, in get_result
    raise exc.with_traceback(tb)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
    res = yield
          ^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 121, in _multicall
    res = hook_impl.function(*args)
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/python.py", line 157, in pytest_pyfunc_call
    result = testfunction(**testargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/langchain_tests/integration_tests/chat_models.py", line 3251, in test_agent_loop
    tool_call_message = llm_with_tools.invoke([input_message])
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 5557, in invoke
    return self.bound.invoke(
           ^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/langchain_google_genai/chat_models.py", line 2584, in invoke
    return super().invoke(input, config, stop=stop, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/langchain_core/language_models/chat_models.py", line 398, in invoke
    self.generate_prompt(
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/langchain_core/language_models/chat_models.py", line 1117, in generate_prompt
    return self.generate(prompt_messages, stop=stop, callbacks=callbacks, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/langchain_core/language_models/chat_models.py", line 927, in generate
    self._generate_with_cache(
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/langchain_core/language_models/chat_models.py", line 1221, in _generate_with_cache
    result = self._generate(
             ^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/langchain_google_genai/chat_models.py", line 3100, in _generate
    _handle_client_error(e, request)
  File "/workspace/libs/genai/langchain_google_genai/chat_models.py", line 146, in _handle_client_error
    raise ChatGoogleGenerativeAIError(msg) from e
langchain_google_genai.chat_models.ChatGoogleGenerativeAIError: Error calling model 'gemini-3-pro-preview' (RESOURCE_EXHAUSTED): 429 RESOURCE_EXHAUSTED. {'error': {'code': 429, 'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_requests_per_model_per_day, limit: 0', 'status': 'RESOURCE_EXHAUSTED', 'details': [{'@type': 'type.googleapis.com/google.rpc.Help', 'links': [{'description': 'Learn more about Gemini API quotas', 'url': 'https://ai.google.dev/gemini-api/docs/rate-limits'}]}, {'@type': 'type.googleapis.com/google.rpc.QuotaFailure', 'violations': [{'quotaMetric': 'generativelanguage.googleapis.com/generate_requests_per_model_per_day', 'quotaId': 'GenerateRequestsPerDayPerProjectPerModel'}]}]}}
_______ TestGeminiProStandardGoogleAI.test_unicode_tool_call_integration _______
Traceback (most recent call last):
  File "/workspace/libs/genai/langchain_google_genai/chat_models.py", line 3096, in _generate
    response: GenerateContentResponse = self.client.models.generate_content(
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/google/genai/models.py", line 5188, in generate_content
    return self._generate_content(
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/google/genai/models.py", line 3985, in _generate_content
    response = self._api_client.request(
               ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/google/genai/_api_client.py", line 1388, in request
    response = self._request(http_request, http_options, stream=False)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/google/genai/_api_client.py", line 1222, in _request
    return retry(self._request_once, http_request, stream)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 477, in __call__
    do = self.iter(retry_state=retry_state)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 378, in iter
    result = action(retry_state)
             ^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 420, in exc_check
    raise retry_exc.reraise()
          ^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 187, in reraise
    raise self.last_attempt.result()
          ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/concurrent/futures/_base.py", line 449, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 480, in __call__
    result = fn(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/google/genai/_api_client.py", line 1201, in _request_once
    errors.APIError.raise_for_response(response)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/google/genai/errors.py", line 121, in raise_for_response
    cls.raise_error(response.status_code, response_json, response)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/google/genai/errors.py", line 146, in raise_error
    raise ClientError(status_code, response_json, response)
google.genai.errors.ClientError: 429 RESOURCE_EXHAUSTED. {'error': {'code': 429, 'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_requests_per_model_per_day, limit: 0', 'status': 'RESOURCE_EXHAUSTED', 'details': [{'@type': 'type.googleapis.com/google.rpc.Help', 'links': [{'description': 'Learn more about Gemini API quotas', 'url': 'https://ai.google.dev/gemini-api/docs/rate-limits'}]}, {'@type': 'type.googleapis.com/google.rpc.QuotaFailure', 'violations': [{'quotaMetric': 'generativelanguage.googleapis.com/generate_requests_per_model_per_day', 'quotaId': 'GenerateRequestsPerDayPerProjectPerModel'}]}]}}

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/runner.py", line 344, in from_call
    result: TResult | None = func()
                             ^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/runner.py", line 246, in <lambda>
    lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_hooks.py", line 512, in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_manager.py", line 120, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 167, in _multicall
    raise exception
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
    yield
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
    return (yield)
            ^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
    return result.get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_result.py", line 103, in get_result
    raise exc.with_traceback(tb)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
    res = yield
          ^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/skipping.py", line 263, in pytest_runtest_call
    return (yield)
            ^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 121, in _multicall
    res = hook_impl.function(*args)
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/runner.py", line 178, in pytest_runtest_call
    item.runtest()
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/python.py", line 1671, in runtest
    self.ihook.pytest_pyfunc_call(pyfuncitem=self)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_hooks.py", line 512, in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_manager.py", line 120, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 167, in _multicall
    raise exception
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
    return result.get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_result.py", line 103, in get_result
    raise exc.with_traceback(tb)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
    res = yield
          ^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 121, in _multicall
    res = hook_impl.function(*args)
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/python.py", line 157, in pytest_pyfunc_call
    result = testfunction(**testargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/langchain_tests/integration_tests/chat_models.py", line 3370, in test_unicode_tool_call_integration
    ai_msg = llm_with_tool.invoke(msgs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 5557, in invoke
    return self.bound.invoke(
           ^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/langchain_google_genai/chat_models.py", line 2584, in invoke
    return super().invoke(input, config, stop=stop, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/langchain_core/language_models/chat_models.py", line 398, in invoke
    self.generate_prompt(
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/langchain_core/language_models/chat_models.py", line 1117, in generate_prompt
    return self.generate(prompt_messages, stop=stop, callbacks=callbacks, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/langchain_core/language_models/chat_models.py", line 927, in generate
    self._generate_with_cache(
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/langchain_core/language_models/chat_models.py", line 1221, in _generate_with_cache
    result = self._generate(
             ^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/langchain_google_genai/chat_models.py", line 3100, in _generate
    _handle_client_error(e, request)
  File "/workspace/libs/genai/langchain_google_genai/chat_models.py", line 146, in _handle_client_error
    raise ChatGoogleGenerativeAIError(msg) from e
langchain_google_genai.chat_models.ChatGoogleGenerativeAIError: Error calling model 'gemini-3-pro-preview' (RESOURCE_EXHAUSTED): 429 RESOURCE_EXHAUSTED. {'error': {'code': 429, 'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_requests_per_model_per_day, limit: 0', 'status': 'RESOURCE_EXHAUSTED', 'details': [{'@type': 'type.googleapis.com/google.rpc.Help', 'links': [{'description': 'Learn more about Gemini API quotas', 'url': 'https://ai.google.dev/gemini-api/docs/rate-limits'}]}, {'@type': 'type.googleapis.com/google.rpc.QuotaFailure', 'violations': [{'quotaMetric': 'generativelanguage.googleapis.com/generate_requests_per_model_per_day', 'quotaId': 'GenerateRequestsPerDayPerProjectPerModel'}]}]}}
=============================== warnings summary ===============================
tests/integration_tests/test_chat_models.py::test_logprobs[google_ai]
tests/integration_tests/test_chat_models.py::test_logprobs_with_json_schema[google_ai]
  /workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/python.py:157: UserWarning: WARNING! logprobs is not default parameter.
                  logprobs was transferred to model_kwargs.
                  Please confirm that logprobs is what you intended.
    result = testfunction(**testargs)

tests/integration_tests/test_standard.py::TestGeminiProStandardGoogleAI::test_audio_inputs
  /workspace/libs/genai/.venv/lib/python3.11/site-packages/langchain_tests/integration_tests/chat_models.py:2651: UserWarning: LANGCHAIN_TESTS_USER_AGENT environment variable not set. langchain-tests pulls (CC0 License) audio data from wikimedia.org. Consider setting a user agent to identify your requests. See https://foundation.wikimedia.org/wiki/Policy:Wikimedia_Foundation_User-Agent_Policy
    audio_data = _get_base64_from_url(url)

tests/integration_tests/test_structured_output_integration.py::test_async_streaming_with_json_schema[google_ai]
  /usr/local/lib/python3.11/asyncio/base_events.py:679: RuntimeWarning: coroutine 'BaseApiClient.aclose' was never awaited
    self._ready.clear()
  Enable tracemalloc to get traceback where the object was allocated.
  See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=================================== XPASSES ====================================
__________________ test_logprobs_with_json_schema[google_ai] ___________________
------------------------------ Captured log call -------------------------------
WARNING  langchain_google_genai.chat_models:chat_models.py:2272 Unexpected argument 'logprobs' provided to ChatGoogleGenerativeAI.
=========================== short test summary info ============================
SKIPPED [1] tests/integration_tests/test_chat_models.py:2618: The `audio_timestamp` parameter is only supported on Vertex AI backend.
SKIPPED [1] tests/integration_tests/test_chat_models.py:2768: Vertex AI tests require GOOGLE_CLOUD_PROJECT env var to be set
SKIPPED [1] tests/integration_tests/test_chat_models.py:2866: Vertex AI tests require GOOGLE_CLOUD_PROJECT env var to be set
SKIPPED [2] .venv/lib/python3.11/site-packages/langchain_tests/integration_tests/chat_models.py:908: model_override_value not specified.
SKIPPED [2] .venv/lib/python3.11/site-packages/langchain_tests/integration_tests/chat_models.py:935: model_override_value not specified.
SKIPPED [2] .venv/lib/python3.11/site-packages/langchain_tests/integration_tests/chat_models.py:962: model_override_value not specified.
SKIPPED [2] .venv/lib/python3.11/site-packages/langchain_tests/integration_tests/chat_models.py:992: model_override_value not specified.
SKIPPED [1] .venv/lib/python3.11/site-packages/langchain_tests/integration_tests/chat_models.py:2953: Model does not support PDF tool message.
SKIPPED [2] .venv/lib/python3.11/site-packages/langchain_tests/integration_tests/chat_models.py:3067: Model does not explicitly support Anthropic inputs.
SKIPPED [2] .venv/lib/python3.11/site-packages/langchain_tests/integration_tests/chat_models.py:3298: VCR not set up.
XFAIL tests/integration_tests/test_chat_models.py::test_logprobs[google_ai] - logprobs are subject to daily quotas
XFAIL tests/integration_tests/test_standard.py::TestGeminiFlashStandardGoogleAI::test_audio_inputs - [NOTRUN] Multimodal tests require integration secrets (user agent to fetch external resources)
XFAIL tests/integration_tests/test_standard.py::TestGeminiFlashStandardGoogleAI::test_pdf_inputs - [NOTRUN] Multimodal tests require integration secrets (user agent to fetch external resources)
XPASS tests/integration_tests/test_chat_models.py::test_logprobs_with_json_schema[google_ai] - logprobs are subject to daily quotas
FAILED tests/integration_tests/test_chat_models.py::test_context_caching[google_ai]
FAILED tests/integration_tests/test_standard.py::TestGeminiProStandardGoogleAI::test_image_tool_message
FAILED tests/integration_tests/test_standard.py::TestGeminiProStandardGoogleAI::test_pdf_tool_message
FAILED tests/integration_tests/test_standard.py::TestGeminiProStandardGoogleAI::test_message_with_name
FAILED tests/integration_tests/test_standard.py::TestGeminiProStandardGoogleAI::test_agent_loop[model0]
FAILED tests/integration_tests/test_standard.py::TestGeminiProStandardGoogleAI::test_agent_loop[model1]
FAILED tests/integration_tests/test_standard.py::TestGeminiProStandardGoogleAI::test_unicode_tool_call_integration
= 7 failed, 195 passed, 16 skipped, 3 xfailed, 1 xpassed, 4 warnings in 1362.60s (0:22:42) =
ERROR
ERROR: build step 0 "python:3.11" failed: step exited with non-zero status: 1


starting build "272e0491-eeb1-4a49-afe5-b96b95f9fb61"

FETCHSOURCE
From https://github.com/langchain-ai/langchain-google
 * branch            803bb7fe3df519ecd12e3947b63ac901a807c8d8 -> FETCH_HEAD
HEAD is now at 803bb7f Merge branch 'main' into fix/vertexai-init-delay
GitCommit:
803bb7fe3df519ecd12e3947b63ac901a807c8d8
BUILD
Pulling image: python:3.11
3.11: Pulling from library/python
2ca1bfae7ba8: Already exists
82e18c5e1c15: Already exists
be442a7e0d6f: Already exists
26d823e3848f: Already exists
ce91906e19f2: Pulling fs layer
67374e68056b: Pulling fs layer
ee3ec68f096e: Pulling fs layer
ee3ec68f096e: Verifying Checksum
ee3ec68f096e: Download complete
ce91906e19f2: Verifying Checksum
ce91906e19f2: Download complete
67374e68056b: Verifying Checksum
67374e68056b: Download complete
ce91906e19f2: Pull complete
67374e68056b: Pull complete
ee3ec68f096e: Pull complete
Digest: sha256:8999a3987fa4c44ed479c07a8fe6921a9168454d4b9b49c3f41fda5db3beb4fa
Status: Downloaded newer image for python:3.11
docker.io/library/python:3.11
Using pip 24.0 from /usr/local/lib/python3.11/site-packages/pip (python 3.11)
Collecting uv==0.8.13
  Obtaining dependency information for uv==0.8.13 from https://files.pythonhosted.org/packages/82/6b/81387a715dd045f7edea452fb76a5896dcfc11b8ecf0db5106f4b0f633ec/uv-0.8.13-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
  Downloading uv-0.8.13-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)
Downloading uv-0.8.13-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.5 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 19.5/19.5 MB 83.6 MB/s eta 0:00:00
Installing collected packages: uv
Successfully installed uv-0.8.13
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

[notice] A new release of pip is available: 24.0 -> 26.0
[notice] To update, run: pip install --upgrade pip
Using CPython 3.11.14 interpreter at: /usr/local/bin/python3
Creating virtual environment at: .venv
Resolved 81 packages in 1ms
   Building langchain-google-genai @ file:///workspace/libs/genai
Downloading numpy (16.1MiB)
Downloading pydantic-core (2.0MiB)
Downloading pygments (1.2MiB)
Downloading zstandard (5.3MiB)
 Downloading pygments
 Downloading pydantic-core
 Downloading zstandard
      Built langchain-google-genai @ file:///workspace/libs/genai
 Downloading numpy
Prepared 67 packages in 1.95s
warning: Failed to hardlink files; falling back to full copy. This may lead to degraded performance.
         If the cache and target directories are on different filesystems, hardlinking may not be supported.
         If this is intentional, set `export UV_LINK_MODE=copy` or use `--link-mode=copy` to suppress this warning.
Installed 67 packages in 240ms
 + annotated-types==0.7.0
 + anyio==4.12.0
 + cachetools==6.2.2
 + certifi==2025.11.12
 + cffi==2.0.0
 + charset-normalizer==3.4.4
 + distro==1.9.0
 + filetype==1.2.0
 + freezegun==1.5.5
 + google-auth==2.45.0
 + google-genai==1.56.0
 + h11==0.16.0
 + httpcore==1.0.9
 + httpx==0.28.1
 + idna==3.11
 + iniconfig==2.3.0
 + jsonpatch==1.33
 + jsonpointer==3.0.0
 + langchain-core==1.2.5
 + langchain-google-genai==4.2.0 (from file:///workspace/libs/genai)
 + langchain-tests==1.1.2
 + langsmith==0.4.56
 + markdown-it-py==4.0.0
 + mdurl==0.1.2
 + multidict==6.7.0
 + numpy==2.3.5
 + orjson==3.11.5
 + packaging==25.0
 + pluggy==1.6.0
 + propcache==0.4.1
 + protobuf==6.33.2
 + py-cpuinfo==9.0.0
 + pyasn1==0.6.1
 + pyasn1-modules==0.4.2
 + pycparser==2.23
 + pydantic==2.12.5
 + pydantic-core==2.41.5
 + pygments==2.19.2
 + pytest==8.4.2
 + pytest-asyncio==0.26.0
 + pytest-benchmark==5.2.3
 + pytest-codspeed==4.2.0
 + pytest-mock==3.15.1
 + pytest-recording==0.13.4
 + pytest-retry==1.7.0
 + pytest-socket==0.7.0
 + pytest-watcher==0.4.3
 + python-dateutil==2.9.0.post0
 + pyyaml==6.0.3
 + requests==2.32.5
 + requests-toolbelt==1.0.0
 + rich==14.2.0
 + rsa==4.9.1
 + six==1.17.0
 + sniffio==1.3.1
 + syrupy==4.9.1
 + tenacity==9.1.2
 + typing-extensions==4.15.0
 + typing-inspection==0.4.2
 + urllib3==2.6.1
 + uuid-utils==0.12.0
 + vcrpy==7.0.0
 + watchdog==6.0.0
 + websockets==15.0.1
 + wrapt==2.0.1
 + yarl==1.22.0
 + zstandard==0.25.0
============================= test session starts ==============================
platform linux -- Python 3.11.14, pytest-8.4.2, pluggy-1.6.0
codspeed: 4.2.0 (disabled, mode: walltime, callgraph: not supported, timer_resolution: 1.0ns)
benchmark: 5.2.3 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /workspace/libs/genai
configfile: pyproject.toml
plugins: langsmith-0.4.56, asyncio-0.26.0, benchmark-5.2.3, codspeed-4.2.0, socket-0.7.0, mock-3.15.1, recording-0.13.4, syrupy-4.9.1, retry-1.7.0, anyio-4.12.0
asyncio: mode=Mode.AUTO, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function
collected 222 items

tests/integration_tests/test_callbacks.py .                              [  0%]
tests/integration_tests/test_chat_models.py ............................ [ 13%]
.....xX..............................................F.s.ss.             [ 40%]
tests/integration_tests/test_compile.py .                                [ 40%]
tests/integration_tests/test_embeddings.py ...........                   [ 45%]
tests/integration_tests/test_function_call.py ...                        [ 46%]
tests/integration_tests/test_llms.py ......                              [ 49%]
tests/integration_tests/test_standard.py .......ssss.................... [ 63%]
........ss...s.xx.......ssss.............................FFsFFFsF        [ 92%]
tests/integration_tests/test_structured_output_integration.py .......... [ 97%]
....                                                                     [ 99%]
tests/integration_tests/test_tools.py ..                                 [100%]

=================================== FAILURES ===================================
_______________________ test_context_caching[google_ai] ________________________
Traceback (most recent call last):
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/runner.py", line 344, in from_call
    result: TResult | None = func()
                             ^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/runner.py", line 246, in <lambda>
    lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_hooks.py", line 512, in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_manager.py", line 120, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 167, in _multicall
    raise exception
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
    yield
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
    return (yield)
            ^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
    return result.get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_result.py", line 103, in get_result
    raise exc.with_traceback(tb)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
    res = yield
          ^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/skipping.py", line 263, in pytest_runtest_call
    return (yield)
            ^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_callers.py", line 121, in _multicall
    res = hook_impl.function(*args)
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/runner.py", line 178, in pytest_runtest_call
    item.runtest()
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/_pytest/python.py", line 1671, in runtest
    self.ihook.pytest_pyfunc_call(pyfuncitem=self)
  File "/workspace/libs/genai/.venv/lib/python3.11/site-packages/pluggy/_hooks.py", line 512, in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)

Build Log: https://console.cloud.google.com/logs/viewer?advancedFilter=resource.type%3D%22build%22+AND+resource.labels.build_id%3D%22272e0491-eeb1-4a49-afe5-b96b95f9fb61%22+AND+resource.labels.build_trigger_id%3D%22cf0bf1b4-59b2-4ad2-9f4c-4866728a37b1%22&project=llm-integration-tests