Symptom
pipenv syncfails with file-not-found errors for package paths inPipfile.- Example pattern:
No such file or directory: ../game-framework-runners/dist/...
Cause
- This repository depends on local package artifacts from sibling repositories.
Fix
- Build or place the required tarballs at the exact relative paths defined in
Pipfile. - Re-run
pipenv sync.
Symptom
- Running
pipenv run uvicorn server:app ...fails to load the app module.
Cause
server.pyis undergame-app-server/, not repository root.- Relative import in
server.py(from .engine import GameAppServer) requires package-aware execution.
Fix
- Align package layout and startup command so module import is unambiguous.
- Typical options:
- Rename folder to a valid Python package name (for example
game_app_server) and run with module path. - Or remove relative import usage if running as a flat script module.
- Rename folder to a valid Python package name (for example
Symptom
- Error references
from .engine import GameAppServer.
Cause
server.pyis loaded as top-level script/module, not package member.
Fix
- Run code as package module, or adjust imports to absolute paths matching actual layout.
Symptom
- Dynamic import failure for sample game class path.
Cause
registered_gamescontains mixed naming styles:delirium-game-logic.game_logic.DeliriumLogicsample-game_logic.sample_game.SampleGameLogic
- Hyphen/underscore package naming may not match install-time import names.
Fix
- Verify importable module names from installed packages.
- Update
registered_gamesvalues to match real Python import paths.
Symptom
- Compose startup fails with
poetry: command not found.
Cause
Dockerfiles/docker-compose.ymlusespoetry run ..., but repository uses Pipenv.
Fix
- Update compose command to Pipenv-based command, or add Poetry intentionally and keep tools consistent.
Symptom
- Calling
GET /initialize_serverdoes not return quickly.
Cause
GameAppServer(...)startsstart_input_loop()directly in request flow.- Loop runs until game over and can block request handling.
Fix
- Move game loop execution to a background worker/task model.
- Keep request handlers non-blocking and return quickly.
Symptom
GET /poll_from_serverorGET /poll_to_clientdoes not return.
Cause
- Endpoint loops until matching message/response exists.
Fix
- Post required data first (
/post_from_clientor/push_to_client). - Optionally add timeout handling in API implementation.