Bug Description
2026-04-10 21:21:37,200 - openviking.server.app - WARNING - Dev mode: no root_api_key configured, authentication disabled. This is allowed because the server is bound to localhost (127.0.0.1). Do NOT expose this server to the network without configuring server.root_api_key in ov.conf.
2026-04-10 21:24:22,406 - openviking.storage.viking_fs - ERROR - [VikingFS] Failed to append to file viking://session/default/37fe7b4f-2d21-49dc-b295-9c072b01c229/messages.jsonl: not found: /default/session/default/37fe7b4f-2d21-49dc-b295-9c072b01c229/messages.jsonl
2026-04-10 21:24:22,407 - openviking.server.app - WARNING - Unhandled exception: Failed to append to file viking://session/default/37fe7b4f-2d21-49dc-b295-9c072b01c229/messages.jsonl: not found: /default/session/default/37fe7b4f-2d21-49dc-b295-9c072b01c229/messages.jsonl
2026-04-10 21:24:22,407 - uvicorn.error - ERROR - Exception in ASGI application
Traceback (most recent call last):
File "/usr/local/lib64/python3.11/site-packages/openviking/storage/viking_fs.py", line 1719, in append_file
existing_bytes = self._handle_agfs_read(self.agfs.read(path))
^^^^^^^^^^^^^^^^^^^^
RuntimeError: not found: /default/session/default/37fe7b4f-2d21-49dc-b295-9c072b01c229/messages.jsonl
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 420, in run_asgi
result = await app( # type: ignore[func-returns-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in call
return await self.app(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1163, in call
await super().call(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 90, in call
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in call
raise exc
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in call
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in call
with recv_stream, send_stream, collapse_excgroups():
File "/usr/lib64/python3.11/contextlib.py", line 155, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 87, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 193, in call
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib64/python3.11/site-packages/openviking/server/app.py", line 165, in add_timing
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 168, in call_next
raise app_exc from app_exc.cause or app_exc.context
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 144, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 88, in call
await self.app(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in call
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in call
await self.app(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 660, in call
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 680, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 134, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 120, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 674, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 328, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib64/python3.11/site-packages/openviking/server/routers/sessions.py", line 270, in add_message
session.add_message(request.role, parts, created_at=created_at)
File "/usr/local/lib64/python3.11/site-packages/openviking/session/session.py", line 320, in add_message
self._append_to_jsonl(msg)
File "/usr/local/lib64/python3.11/site-packages/openviking/session/session.py", line 1294, in _append_to_jsonl
run_async(
File "/usr/local/lib64/python3.11/site-packages/openviking_cli/utils/async_utils.py", line 92, in run_async
raise error_box[0]
File "/usr/local/lib64/python3.11/site-packages/openviking_cli/utils/async_utils.py", line 82, in _run_in_thread
result_box.append(tmp_loop.run_until_complete(coro))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/asyncio/base_events.py", line 653, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "/usr/local/lib64/python3.11/site-packages/openviking/storage/viking_fs.py", line 1735, in append_file
raise IOError(f"Failed to append to file {uri}: {e}")
OSError: Failed to append to file viking://session/default/37fe7b4f-2d21-49dc-b295-9c072b01c229/messages.jsonl: not found: /default/session/default/37fe7b4f-2d21-49dc-b295-9c072b01c229/messages.jsonl
2026-04-10 21:24:27,865 - openviking.storage.viking_fs - ERROR - [VikingFS] Failed to append to file viking://session/default/8bb5a541-9afb-403f-a44e-5f3869cd3ed0/messages.jsonl: not found: /default/session/default/8bb5a541-9afb-403f-a44e-5f3869cd3ed0/messages.jsonl
2026-04-10 21:24:27,866 - openviking.server.app - WARNING - Unhandled exception: Failed to append to file viking://session/default/8bb5a541-9afb-403f-a44e-5f3869cd3ed0/messages.jsonl: not found: /default/session/default/8bb5a541-9afb-403f-a44e-5f3869cd3ed0/messages.jsonl
2026-04-10 21:24:27,866 - uvicorn.error - ERROR - Exception in ASGI application
Traceback (most recent call last):
File "/usr/local/lib64/python3.11/site-packages/openviking/storage/viking_fs.py", line 1719, in append_file
existing_bytes = self._handle_agfs_read(self.agfs.read(path))
^^^^^^^^^^^^^^^^^^^^
RuntimeError: not found: /default/session/default/8bb5a541-9afb-403f-a44e-5f3869cd3ed0/messages.jsonl
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 420, in run_asgi
result = await app( # type: ignore[func-returns-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in call
return await self.app(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1163, in call
await super().call(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 90, in call
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in call
raise exc
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in call
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in call
with recv_stream, send_stream, collapse_excgroups():
File "/usr/lib64/python3.11/contextlib.py", line 155, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 87, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 193, in call
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib64/python3.11/site-packages/openviking/server/app.py", line 165, in add_timing
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 168, in call_next
raise app_exc from app_exc.cause or app_exc.context
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 144, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 88, in call
await self.app(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in call
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in call
await self.app(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 660, in call
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 680, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 134, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 120, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 674, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 328, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib64/python3.11/site-packages/openviking/server/routers/sessions.py", line 270, in add_message
session.add_message(request.role, parts, created_at=created_at)
File "/usr/local/lib64/python3.11/site-packages/openviking/session/session.py", line 320, in add_message
self._append_to_jsonl(msg)
File "/usr/local/lib64/python3.11/site-packages/openviking/session/session.py", line 1294, in _append_to_jsonl
run_async(
File "/usr/local/lib64/python3.11/site-packages/openviking_cli/utils/async_utils.py", line 92, in run_async
raise error_box[0]
File "/usr/local/lib64/python3.11/site-packages/openviking_cli/utils/async_utils.py", line 82, in _run_in_thread
result_box.append(tmp_loop.run_until_complete(coro))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/asyncio/base_events.py", line 653, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "/usr/local/lib64/python3.11/site-packages/openviking/storage/viking_fs.py", line 1735, in append_file
raise IOError(f"Failed to append to file {uri}: {e}")
OSError: Failed to append to file viking://session/default/8bb5a541-9afb-403f-a44e-5f3869cd3ed0/messages.jsonl: not found: /default/session/default/8bb5a541-9afb-403f-a44e-5f3869cd3ed0/messages.jsonl
Steps to Reproduce
- 好像是多个条从不同渠道的信息同时dispatch 到一个 agent 会出现这种情况
Expected Behavior
不会崩溃
Actual Behavior
gateway 崩溃
Minimal Reproducible Example
Error Logs
OpenViking Version
0.3.4
Python Version
3.11
Operating System
Linux
Model Backend
None
Additional Context
No response
Bug Description
2026-04-10 21:21:37,200 - openviking.server.app - WARNING - Dev mode: no root_api_key configured, authentication disabled. This is allowed because the server is bound to localhost (127.0.0.1). Do NOT expose this server to the network without configuring server.root_api_key in ov.conf.
2026-04-10 21:24:22,406 - openviking.storage.viking_fs - ERROR - [VikingFS] Failed to append to file viking://session/default/37fe7b4f-2d21-49dc-b295-9c072b01c229/messages.jsonl: not found: /default/session/default/37fe7b4f-2d21-49dc-b295-9c072b01c229/messages.jsonl
2026-04-10 21:24:22,407 - openviking.server.app - WARNING - Unhandled exception: Failed to append to file viking://session/default/37fe7b4f-2d21-49dc-b295-9c072b01c229/messages.jsonl: not found: /default/session/default/37fe7b4f-2d21-49dc-b295-9c072b01c229/messages.jsonl
2026-04-10 21:24:22,407 - uvicorn.error - ERROR - Exception in ASGI application
Traceback (most recent call last):
File "/usr/local/lib64/python3.11/site-packages/openviking/storage/viking_fs.py", line 1719, in append_file
existing_bytes = self._handle_agfs_read(self.agfs.read(path))
^^^^^^^^^^^^^^^^^^^^
RuntimeError: not found: /default/session/default/37fe7b4f-2d21-49dc-b295-9c072b01c229/messages.jsonl
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 420, in run_asgi
result = await app( # type: ignore[func-returns-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in call
return await self.app(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1163, in call
await super().call(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 90, in call
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in call
raise exc
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in call
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in call
with recv_stream, send_stream, collapse_excgroups():
File "/usr/lib64/python3.11/contextlib.py", line 155, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 87, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 193, in call
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib64/python3.11/site-packages/openviking/server/app.py", line 165, in add_timing
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 168, in call_next
raise app_exc from app_exc.cause or app_exc.context
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 144, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 88, in call
await self.app(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in call
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in call
await self.app(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 660, in call
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 680, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 134, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 120, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 674, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 328, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib64/python3.11/site-packages/openviking/server/routers/sessions.py", line 270, in add_message
session.add_message(request.role, parts, created_at=created_at)
File "/usr/local/lib64/python3.11/site-packages/openviking/session/session.py", line 320, in add_message
self._append_to_jsonl(msg)
File "/usr/local/lib64/python3.11/site-packages/openviking/session/session.py", line 1294, in _append_to_jsonl
run_async(
File "/usr/local/lib64/python3.11/site-packages/openviking_cli/utils/async_utils.py", line 92, in run_async
raise error_box[0]
File "/usr/local/lib64/python3.11/site-packages/openviking_cli/utils/async_utils.py", line 82, in _run_in_thread
result_box.append(tmp_loop.run_until_complete(coro))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/asyncio/base_events.py", line 653, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "/usr/local/lib64/python3.11/site-packages/openviking/storage/viking_fs.py", line 1735, in append_file
raise IOError(f"Failed to append to file {uri}: {e}")
OSError: Failed to append to file viking://session/default/37fe7b4f-2d21-49dc-b295-9c072b01c229/messages.jsonl: not found: /default/session/default/37fe7b4f-2d21-49dc-b295-9c072b01c229/messages.jsonl
2026-04-10 21:24:27,865 - openviking.storage.viking_fs - ERROR - [VikingFS] Failed to append to file viking://session/default/8bb5a541-9afb-403f-a44e-5f3869cd3ed0/messages.jsonl: not found: /default/session/default/8bb5a541-9afb-403f-a44e-5f3869cd3ed0/messages.jsonl
2026-04-10 21:24:27,866 - openviking.server.app - WARNING - Unhandled exception: Failed to append to file viking://session/default/8bb5a541-9afb-403f-a44e-5f3869cd3ed0/messages.jsonl: not found: /default/session/default/8bb5a541-9afb-403f-a44e-5f3869cd3ed0/messages.jsonl
2026-04-10 21:24:27,866 - uvicorn.error - ERROR - Exception in ASGI application
Traceback (most recent call last):
File "/usr/local/lib64/python3.11/site-packages/openviking/storage/viking_fs.py", line 1719, in append_file
existing_bytes = self._handle_agfs_read(self.agfs.read(path))
^^^^^^^^^^^^^^^^^^^^
RuntimeError: not found: /default/session/default/8bb5a541-9afb-403f-a44e-5f3869cd3ed0/messages.jsonl
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 420, in run_asgi
result = await app( # type: ignore[func-returns-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in call
return await self.app(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1163, in call
await super().call(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 90, in call
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in call
raise exc
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in call
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in call
with recv_stream, send_stream, collapse_excgroups():
File "/usr/lib64/python3.11/contextlib.py", line 155, in exit
self.gen.throw(typ, value, traceback)
File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 87, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 193, in call
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib64/python3.11/site-packages/openviking/server/app.py", line 165, in add_timing
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 168, in call_next
raise app_exc from app_exc.cause or app_exc.context
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 144, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 88, in call
await self.app(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in call
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in call
await self.app(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 660, in call
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 680, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 134, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 120, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 674, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 328, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib64/python3.11/site-packages/openviking/server/routers/sessions.py", line 270, in add_message
session.add_message(request.role, parts, created_at=created_at)
File "/usr/local/lib64/python3.11/site-packages/openviking/session/session.py", line 320, in add_message
self._append_to_jsonl(msg)
File "/usr/local/lib64/python3.11/site-packages/openviking/session/session.py", line 1294, in _append_to_jsonl
run_async(
File "/usr/local/lib64/python3.11/site-packages/openviking_cli/utils/async_utils.py", line 92, in run_async
raise error_box[0]
File "/usr/local/lib64/python3.11/site-packages/openviking_cli/utils/async_utils.py", line 82, in _run_in_thread
result_box.append(tmp_loop.run_until_complete(coro))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/asyncio/base_events.py", line 653, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "/usr/local/lib64/python3.11/site-packages/openviking/storage/viking_fs.py", line 1735, in append_file
raise IOError(f"Failed to append to file {uri}: {e}")
OSError: Failed to append to file viking://session/default/8bb5a541-9afb-403f-a44e-5f3869cd3ed0/messages.jsonl: not found: /default/session/default/8bb5a541-9afb-403f-a44e-5f3869cd3ed0/messages.jsonl
Steps to Reproduce
Expected Behavior
不会崩溃
Actual Behavior
gateway 崩溃
Minimal Reproducible Example
Error Logs
OpenViking Version
0.3.4
Python Version
3.11
Operating System
Linux
Model Backend
None
Additional Context
No response