Skip to content

Resource.usage_per_month input validation error #4525

Closed
@jopemachine

Description

@jopemachine

Summary  

async def test():
    async with AsyncSession() as session:
        r = await session.Resource.usage_per_month("202505", ["2de2b969-1d04-48a6-af16-0bc8adb3c831"])
        print(r)

It seems that the argument is not being passed to the parameter as intended.

Logs/Errors  

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/home/jopemachine/.local/backend.ai/repos/main/abcd.py", line 19, in <module>
    asyncio.run(test())
    ~~~~~~~~~~~^^^^^^^^
  File "/home/jopemachine/.pyenv/versions/3.13.3/lib/python3.13/asyncio/runners.py", line 195, in run
    return runner.run(main)
           ~~~~~~~~~~^^^^^^
  File "/home/jopemachine/.pyenv/versions/3.13.3/lib/python3.13/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "/home/jopemachine/.pyenv/versions/3.13.3/lib/python3.13/asyncio/base_events.py", line 719, in run_until_complete
    return future.result()
           ~~~~~~~~~~~~~^^
  File "/home/jopemachine/.local/backend.ai/repos/main/abcd.py", line 10, in test
    r = await session.Resource.usage_per_month("202405", ["2de2b969-1d04-48a6-af16-0bc8adb3c831"])
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jopemachine/.local/backend.ai/repos/main/src/ai/backend/client/func/resource.py", line 76, in usage_per_month
    async with rqst.fetch() as resp:
               ~~~~~~~~~~^^
  File "/home/jopemachine/.local/backend.ai/repos/main/src/ai/backend/client/request.py", line 576, in __aenter__
    raise BackendAPIError(raw_resp.status, raw_resp.reason or "", msg)
ai.backend.client.exceptions.BackendAPIError: BackendAPIError(400, 'Bad Request', {'type': 'https://api.backend.ai/probs/invalid-api-params', 'title': 'Missing or invalid API parameters.', 'error_code': 'api_generic_invalid-parameters', 'msg': 'Traceback (most recent call last):\n  File "/home/jopemachine/.local/backend.ai/repos/main/src/ai/backend/manager/api/utils.py", line 203, in wrapped\n    checked_params = checker.check(stripped_params)\n  File "/home/jopemachine/.local/backend.ai/repos/main/dist/export/python/virtualenvs/python-default/3.13.3/lib/python3.13/site-packages/trafaret/base.py", line 110, in check\n    return self.transform(value, context=context)\n           ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/jopemachine/.local/backend.ai/repos/main/dist/export/python/virtualenvs/python-default/3.13.3/lib/python3.13/site-packages/trafaret/base.py", line 1178, in transform\n    self._failure(error=errors, code=codes.SOME_ELEMENTS_DID_NOT_MATCH)\n    ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/jopemachine/.local/backend.ai/repos/main/dist/export/python/virtualenvs/python-default/3.13.3/lib/python3.13/site-packages/trafaret/base.py", line 140, in _failure\n    raise DataError(error=error, value=value, trafaret=self, code=code)\ntrafaret.dataerror.DataError: {\'group_ids\': DataError(\'is required\'), \'month\': DataError(\'is required\')}\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File "/home/jopemachine/.local/backend.ai/repos/main/src/ai/backend/manager/server.py", line 342, in exception_middleware\n    resp = await handler(request)\n           ^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/jopemachine/.local/backend.ai/repos/main/src/ai/backend/manager/server.py", line 304, in api_middleware\n    resp = await _handler(request)\n           ^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/jopemachine/.local/backend.ai/repos/main/src/ai/backend/common/metrics/http.py", line 39, in metric_middleware\n    resp = await handler(request)\n           ^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/jopemachine/.local/backend.ai/repos/main/src/ai/backend/manager/api/auth.py", line 593, in auth_middleware\n    return await handler(request)\n           ^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/jopemachine/.local/backend.ai/repos/main/dist/export/python/virtualenvs/python-default/3.13.3/lib/python3.13/site-packages/aiotools/func.py", line 23, in wrapped\n    return await coro(*args, *cargs, **kwargs, **ckwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/jopemachine/.local/backend.ai/repos/main/src/ai/backend/manager/api/ratelimit.py", line 73, in rlim_middleware\n    response = await handler(request)\n               ^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/jopemachine/.local/backend.ai/repos/main/dist/export/python/virtualenvs/python-default/3.13.3/lib/python3.13/site-packages/aiohttp/web_middlewares.py", line 117, in impl\n    return await handler(request)\n           ^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/jopemachine/.local/backend.ai/repos/main/src/ai/backend/manager/api/manager.py", line 80, in wrapped\n    return await handler(request, *args, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/jopemachine/.local/backend.ai/repos/main/src/ai/backend/manager/api/auth.py", line 624, in wrapped\n    return await handler(request, *args, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/jopemachine/.local/backend.ai/repos/main/src/ai/backend/manager/api/utils.py", line 210, in wrapped\n    raise InvalidAPIParameters("Input validation error", extra_data=e.as_dict())\nai.backend.manager.errors.exceptions.InvalidAPIParameters: Missing or invalid API parameters. (Input validation error)\n -> extra_data: {\'group_ids\': \'is required\', \'month\': \'is required\'}\n'})

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions