/Users/manta/Documents/Projects/TheRoad-I1/backend/app/api/v1/prompts.py:19: UserWarning: Field name "schema_json" in "PromptCreate" shadows an attribute in parent "BaseModel" class PromptCreate(BaseModel): /Users/manta/Documents/Projects/TheRoad-I1/backend/app/api/v1/prompts.py:27: UserWarning: Field name "schema_json" in "PromptUpdate" shadows an attribute in parent "BaseModel" class PromptUpdate(BaseModel): INFO: Started server process [49677] INFO: Waiting for application startup. {"timestamp": "2026-07-10T02:15:01.804254+00:00", "level": "WARNING", "logger": "app.main", "message": "SECURITY: insecure default credentials in use — DEFAULT_ADMIN_PASSWORD, DEFAULT_CREATOR_PASSWORD. Override via env vars before exposing this server."} INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) {"timestamp": "2026-07-10T02:15:11.283839+00:00", "level": "INFO", "logger": "app.modules.llm.gemini_key_pool", "message": "Gemini key pool: 1 key(s) loaded"} INFO: 127.0.0.1:65221 - "GET /api/v1/health HTTP/1.1" 200 OK INFO: 127.0.0.1:65232 - "POST /api/v1/auth/login HTTP/1.1" 200 OK {"timestamp": "2026-07-10T02:15:31.695251+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "Opik callback enabled (project: theroad-scene-lab)"} 11:15:31 - LiteLLM Router:INFO: router.py:812 - Routing strategy: simple-shuffle {"timestamp": "2026-07-10T02:15:31.712379+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Routing strategy: simple-shuffle"} {"timestamp": "2026-07-10T02:15:31.712631+00:00", "level": "INFO", "logger": "app.modules.llm.llm_client", "message": "LiteLLM Router initialized: 10 deployments (1 Gemini keys, OpenAI=True)"} 11:15:31 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-sol; provider = openai {"timestamp": "2026-07-10T02:15:31.726093+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-sol; provider = openai"} 11:15:34 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:15:34.915822+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} OPIK: Started logging traces to the "theroad-scene-lab" project at https://www.comet.com/opik/api/v1/session/redirect/projects/?trace_id=06a5055c-6eb2-7b45-8000-ba741df5d413&path=aHR0cHM6Ly93d3cuY29tZXQuY29tL29waWsvYXBpLw==. 11:15:34 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=openai/gpt-5.6-sol) 200 OK {"timestamp": "2026-07-10T02:15:34.922633+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-sol)\u001b[32m 200 OK\u001b[0m"} INFO: 127.0.0.1:65232 - "POST /api/v1/projects/ HTTP/1.1" 200 OK {"timestamp": "2026-07-10T02:15:34.941025+00:00", "level": "INFO", "logger": "app.api.v1.projects", "message": "creator_corrections updated: project=114a8883-e960-4b97-97c7-0ba00a469750 entries=1 (by admin)"} INFO: 127.0.0.1:65232 - "PUT /api/v1/projects/114a8883-e960-4b97-97c7-0ba00a469750/creator-corrections HTTP/1.1" 200 OK {"timestamp": "2026-07-10T02:15:35.071540+00:00", "level": "INFO", "logger": "app.api.v1.projects", "message": "Planning doc uploaded for project 114a8883: 20566 chars, 16 pages"} INFO: 127.0.0.1:65232 - "POST /api/v1/projects/114a8883-e960-4b97-97c7-0ba00a469750/planning-doc HTTP/1.1" 200 OK {"timestamp": "2026-07-10T02:15:35.116451+00:00", "level": "INFO", "logger": "app.services.planning_doc_analysis_service", "message": "planning_doc_analysis (project=114a8883): PDF multimodal (1504329 bytes)"} 11:15:35 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T02:15:35.118735+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} INFO: 127.0.0.1:65232 - "POST /api/v1/projects/114a8883-e960-4b97-97c7-0ba00a469750/episodes/ HTTP/1.1" 200 OK INFO: 127.0.0.1:65232 - "GET /api/v1/projects/114a8883-e960-4b97-97c7-0ba00a469750/creator-corrections HTTP/1.1" 200 OK INFO: 127.0.0.1:65241 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:65241 - "GET /api/v1/projects/114a8883-e960-4b97-97c7-0ba00a469750/episodes/a230c90c-3878-4fe6-ae67-754927a431d2/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:65245 - "POST /api/v1/auth/login HTTP/1.1" 200 OK INFO: 127.0.0.1:65245 - "GET /api/v1/projects/114a8883-e960-4b97-97c7-0ba00a469750/episodes/a230c90c-3878-4fe6-ae67-754927a431d2/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T02:15:54.472360+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:114a8883-e960-4b97-97c7-0ba00a469750:a230c90c-3878-4fe6-ae67-754927a431d2:planning_doc_analysis (Step planning_doc_analysis for a230c90c-3878-4fe6-ae67-754927a431d2)"} INFO: 127.0.0.1:65245 - "POST /api/v1/projects/114a8883-e960-4b97-97c7-0ba00a469750/episodes/a230c90c-3878-4fe6-ae67-754927a431d2/steps/planning_doc_analysis?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T02:15:54.476819+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step planning_doc_analysis started (run_id=aa5a6246-d0f5-45f1-944c-a29caa2aec10, model=gemini-lite)"} {"timestamp": "2026-07-10T02:15:54.480701+00:00", "level": "INFO", "logger": "app.core.steps.planning_doc_step", "message": "planning_doc_analysis: PDF multimodal (1504329 bytes)"} 11:15:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gemini-3.5-flash; provider = gemini {"timestamp": "2026-07-10T02:15:54.481785+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gemini-3.5-flash; provider = gemini"} 11:16:18 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:16:18.250521+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:16:18 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T02:16:18.264339+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T02:16:18.280490+00:00", "level": "INFO", "logger": "app.services.planning_doc_analysis_service", "message": "planning_doc_analysis (project=114a8883) done: 5 characters, 4 relationships, sections=['characters', 'world_setting', 'tone_mood', 'story_arc', 'visual_concepts', 'key_relationships'], job_id=8e3c9054fc044950b627e05d0e0e754a"} 11:16:20 - LiteLLM:INFO: utils.py:1653 - Wrapper: Completed Call, calling success_handler {"timestamp": "2026-07-10T02:16:20.131205+00:00", "level": "INFO", "logger": "LiteLLM", "message": "Wrapper: Completed Call, calling success_handler"} 11:16:20 - LiteLLM Router:INFO: router.py:1543 - litellm.completion(model=gemini/gemini-3.5-flash) 200 OK {"timestamp": "2026-07-10T02:16:20.142192+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=gemini/gemini-3.5-flash)\u001b[32m 200 OK\u001b[0m"} {"timestamp": "2026-07-10T02:16:20.151985+00:00", "level": "INFO", "logger": "app.core.steps.planning_doc_step", "message": "planning_doc_analysis: 6 characters, 3 relationships, sections=['characters', 'world_setting', 'tone_mood', 'story_arc', 'visual_concepts', 'key_relationships'], mode=pdf"} {"timestamp": "2026-07-10T02:16:20.157166+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step planning_doc_analysis completed (completed=1/1, failed=0)"} {"timestamp": "2026-07-10T02:16:20.157265+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.entity_sync_service", "message": "Skipping entity sync: entity_t2i 데이터 없음 (cascade or pre-analysis)"} {"timestamp": "2026-07-10T02:16:20.157501+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.scene_still_sync_service", "message": "Skipping scene_still sync: scene_detail 데이터 없음 (cascade or pre-analysis). Existing rows preserved."} {"timestamp": "2026-07-10T02:16:20.162332+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "T2I appearance counts: 0 entities updated, 0 total short_ids found"} {"timestamp": "2026-07-10T02:16:20.165891+00:00", "level": "WARNING", "logger": "app.services.checkpoint_sync.episode_projection_service", "message": "Episode a230c90c-3878-4fe6-ae67-754927a431d2 status NOT advanced — incomplete steps: ['text_cleanup', 'scene_segmentation', 'episode_summary', 'visual_world_rules', 'scene_save', 'entity_character_list', 'scene_summary', 'beat_extract', 'shot_extract', 'shot_validator', 'entity_all_character', 'entity_extract_character', 'entity_all_location', 'entity_extract_location', 'entity_all_prop', 'entity_extract_prop', 'entity_relation', 'entity_filter', 'entity_merge', 'entity_detail', 'entity_t2i', 'shot_selection', 'scene_director', 'shot_director', 'scene_camera_flow', 'shot_dependency', 'outlook_phase1', 'outlook_phase2', 'outlook_phase3', 'shot_staging', 'scene_consistency', 'scene_detail', 'shot_dependency_t2i', 't2i_review', 'zoom_continuity_anchor', 'outdoor_place_spec', 'outdoor_shot_grounding', 'background_classify', 'background_master_plan', 'floor_plan_prompt', 'floor_plan_overlay_payload', 'base_location_dossier', 'floor_plan_geometry_readback', 'floor_plan_semantic_readback', 'shot_projection_card', 'bg_space_partition', 'dwelling_zone_map', 'shot_aware_bg_render_plan', 'background_prompt', 'episode_reference_policy', 'visual_continuity_anchor']"} {"timestamp": "2026-07-10T02:16:20.167866+00:00", "level": "INFO", "logger": "app.services.checkpoint_sync.orchestrator", "message": "orchestrate_full_sync: all changes committed atomically (episode a230c90c, step=planning_doc_analysis, repaired=0)"} INFO: 127.0.0.1:65254 - "GET /api/v1/projects/114a8883-e960-4b97-97c7-0ba00a469750/episodes/a230c90c-3878-4fe6-ae67-754927a431d2/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:65254 - "GET /api/v1/projects/114a8883-e960-4b97-97c7-0ba00a469750/episodes/a230c90c-3878-4fe6-ae67-754927a431d2/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T02:16:24.528867+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:114a8883-e960-4b97-97c7-0ba00a469750:a230c90c-3878-4fe6-ae67-754927a431d2:text_cleanup (Step text_cleanup for a230c90c-3878-4fe6-ae67-754927a431d2)"} INFO: 127.0.0.1:65254 - "POST /api/v1/projects/114a8883-e960-4b97-97c7-0ba00a469750/episodes/a230c90c-3878-4fe6-ae67-754927a431d2/steps/text_cleanup?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T02:16:24.532534+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step text_cleanup started (run_id=360b44d4-b37b-42ef-a6ed-1e59a597f6ea, model=gpt-luna)"} {"timestamp": "2026-07-10T02:16:24.535763+00:00", "level": "INFO", "logger": "app.modules.pipeline.text_cleaner", "message": "text_cleanup: PDF 금월도 1부_260226(최종수정본).pdf (434046 bytes, 18 pages) → model=gpt-luna"} 11:16:24 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-luna; provider = openai {"timestamp": "2026-07-10T02:16:24.537495+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-luna; provider = openai"} 11:16:25 - LiteLLM Router:INFO: router.py:1570 - litellm.completion(model=openai/gpt-5.6-luna) Exception litellm.BadRequestError: OpenAIException - Invalid MIME type. Only image types are supported. {"timestamp": "2026-07-10T02:16:25.077828+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-luna)\u001b[31m Exception litellm.BadRequestError: OpenAIException - Invalid MIME type. Only image types are supported.\u001b[0m"} 11:16:25 - LiteLLM Router:INFO: router.py:5437 - Trying to fallback b/w models {"timestamp": "2026-07-10T02:16:25.086859+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Trying to fallback b/w models"} {"timestamp": "2026-07-10T02:16:25.093278+00:00", "level": "ERROR", "logger": "app.core.step_runner", "message": "Step text_cleanup _execute_and_finalize crashed: litellm.BadRequestError: OpenAIException - Invalid MIME type. Only image types are supported.. Received Model Group=gpt-luna\nAvailable Model Group Fallbacks=None\nTraceback (most recent call last):\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/asyncify.py\", line 107, in run_async_function\n _ = asyncio.get_running_loop()\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\nRuntimeError: no running event loop\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/step_runner.py\", line 1224, in _execute_and_finalize\n result = self._execute(mode=execute_mode)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/steps/text_steps.py\", line 30, in _execute\n cleaned = extract_text_from_pdf_llm(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/pipeline/text_cleaner.py\", line 106, in extract_text_from_pdf_llm\n return _extract_pdf_bytes_llm(path.read_bytes(), model_alias, path.name)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/pipeline/text_cleaner.py\", line 60, in _extract_pdf_bytes_llm\n response = router.completion(\n ^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1475, in completion\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1472, in completion\n response = self.function_with_fallbacks(**kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 6020, in function_with_fallbacks\n return run_async_function(self.async_function_with_fallbacks, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/asyncify.py\", line 116, in run_async_function\n return run_in_new_loop()\n ^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/asyncify.py\", line 100, in run_in_new_loop\n return new_loop.run_until_complete(async_function(*args, **kwargs))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/homebrew/Cellar/python@3.12/3.12.13/Frameworks/Python.framework/Versions/3.12/lib/python3.12/asyncio/base_events.py\", line 691, in run_until_complete\n return future.result()\n ^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5634, in async_function_with_fallbacks\n return await self.async_function_with_fallbacks_common_utils(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5591, in async_function_with_fallbacks_common_utils\n raise original_exception\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5625, in async_function_with_fallbacks\n response = await self.async_function_with_retries(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5780, in async_function_with_retries\n self.should_retry_this_error(\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5984, in should_retry_this_error\n raise error\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5731, in async_function_with_retries\n response = await self.make_call(original_function, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5895, in make_call\n response = original_function(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1576, in _completion\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1542, in _completion\n response = litellm.completion(**input_kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/utils.py\", line 1772, in wrapper\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/utils.py\", line 1593, in wrapper\n result = original_function(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/main.py\", line 4420, in completion\n raise exception_type(\n ^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\", line 2456, in exception_type\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\", line 478, in exception_type\n raise BadRequestError(\nlitellm.exceptions.BadRequestError: litellm.BadRequestError: OpenAIException - Invalid MIME type. Only image types are supported.. Received Model Group=gpt-luna\nAvailable Model Group Fallbacks=None\n"} {"timestamp": "2026-07-10T02:16:25.093361+00:00", "level": "ERROR", "logger": "app.services.step_execution_service", "message": "Step text_cleanup failed: litellm.BadRequestError: OpenAIException - Invalid MIME type. Only image types are supported.. Received Model Group=gpt-luna\nAvailable Model Group Fallbacks=None"} INFO: 127.0.0.1:65267 - "GET /api/v1/projects/114a8883-e960-4b97-97c7-0ba00a469750/episodes/a230c90c-3878-4fe6-ae67-754927a431d2/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:65273 - "GET /api/v1/projects/114a8883-e960-4b97-97c7-0ba00a469750/episodes/a230c90c-3878-4fe6-ae67-754927a431d2/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T02:17:14.624161+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:114a8883-e960-4b97-97c7-0ba00a469750:a230c90c-3878-4fe6-ae67-754927a431d2:text_cleanup (Step text_cleanup for a230c90c-3878-4fe6-ae67-754927a431d2)"} INFO: 127.0.0.1:65273 - "POST /api/v1/projects/114a8883-e960-4b97-97c7-0ba00a469750/episodes/a230c90c-3878-4fe6-ae67-754927a431d2/steps/text_cleanup?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T02:17:14.631485+00:00", "level": "WARNING", "logger": "app.core.step_runner", "message": "[RECOVERY] step=text_cleanup status=running → force-like"} {"timestamp": "2026-07-10T02:17:14.633849+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step text_cleanup started (run_id=5aa2a430-3665-45cf-bcee-57b6b252b8a0, model=gpt-luna)"} {"timestamp": "2026-07-10T02:17:14.638526+00:00", "level": "INFO", "logger": "app.modules.pipeline.text_cleaner", "message": "text_cleanup: PDF 금월도 1부_260226(최종수정본).pdf (434046 bytes, 18 pages) → model=gpt-luna"} 11:17:14 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-luna; provider = openai {"timestamp": "2026-07-10T02:17:14.643746+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-luna; provider = openai"} 11:17:14 - LiteLLM Router:INFO: router.py:1570 - litellm.completion(model=openai/gpt-5.6-luna) Exception litellm.BadRequestError: OpenAIException - Invalid MIME type. Only image types are supported. {"timestamp": "2026-07-10T02:17:14.943119+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-luna)\u001b[31m Exception litellm.BadRequestError: OpenAIException - Invalid MIME type. Only image types are supported.\u001b[0m"} 11:17:14 - LiteLLM Router:INFO: router.py:5437 - Trying to fallback b/w models {"timestamp": "2026-07-10T02:17:14.950445+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Trying to fallback b/w models"} {"timestamp": "2026-07-10T02:17:14.957727+00:00", "level": "ERROR", "logger": "app.core.step_runner", "message": "Step text_cleanup _execute_and_finalize crashed: litellm.BadRequestError: OpenAIException - Invalid MIME type. Only image types are supported.. Received Model Group=gpt-luna\nAvailable Model Group Fallbacks=None\nTraceback (most recent call last):\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/asyncify.py\", line 107, in run_async_function\n _ = asyncio.get_running_loop()\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\nRuntimeError: no running event loop\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/step_runner.py\", line 1224, in _execute_and_finalize\n result = self._execute(mode=execute_mode)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/steps/text_steps.py\", line 30, in _execute\n cleaned = extract_text_from_pdf_llm(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/pipeline/text_cleaner.py\", line 106, in extract_text_from_pdf_llm\n return _extract_pdf_bytes_llm(path.read_bytes(), model_alias, path.name)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/pipeline/text_cleaner.py\", line 60, in _extract_pdf_bytes_llm\n response = router.completion(\n ^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1475, in completion\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1472, in completion\n response = self.function_with_fallbacks(**kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 6020, in function_with_fallbacks\n return run_async_function(self.async_function_with_fallbacks, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/asyncify.py\", line 116, in run_async_function\n return run_in_new_loop()\n ^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/asyncify.py\", line 100, in run_in_new_loop\n return new_loop.run_until_complete(async_function(*args, **kwargs))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/homebrew/Cellar/python@3.12/3.12.13/Frameworks/Python.framework/Versions/3.12/lib/python3.12/asyncio/base_events.py\", line 691, in run_until_complete\n return future.result()\n ^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5634, in async_function_with_fallbacks\n return await self.async_function_with_fallbacks_common_utils(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5591, in async_function_with_fallbacks_common_utils\n raise original_exception\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5625, in async_function_with_fallbacks\n response = await self.async_function_with_retries(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5780, in async_function_with_retries\n self.should_retry_this_error(\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5984, in should_retry_this_error\n raise error\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5731, in async_function_with_retries\n response = await self.make_call(original_function, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5895, in make_call\n response = original_function(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1576, in _completion\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1542, in _completion\n response = litellm.completion(**input_kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/utils.py\", line 1772, in wrapper\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/utils.py\", line 1593, in wrapper\n result = original_function(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/main.py\", line 4420, in completion\n raise exception_type(\n ^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\", line 2456, in exception_type\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\", line 478, in exception_type\n raise BadRequestError(\nlitellm.exceptions.BadRequestError: litellm.BadRequestError: OpenAIException - Invalid MIME type. Only image types are supported.. Received Model Group=gpt-luna\nAvailable Model Group Fallbacks=None\n"} {"timestamp": "2026-07-10T02:17:14.957865+00:00", "level": "ERROR", "logger": "app.services.step_execution_service", "message": "Step text_cleanup failed: litellm.BadRequestError: OpenAIException - Invalid MIME type. Only image types are supported.. Received Model Group=gpt-luna\nAvailable Model Group Fallbacks=None"} INFO: 127.0.0.1:65282 - "GET /api/v1/projects/114a8883-e960-4b97-97c7-0ba00a469750/episodes/a230c90c-3878-4fe6-ae67-754927a431d2/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:65288 - "GET /api/v1/projects/114a8883-e960-4b97-97c7-0ba00a469750/episodes/a230c90c-3878-4fe6-ae67-754927a431d2/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T02:18:04.731494+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:114a8883-e960-4b97-97c7-0ba00a469750:a230c90c-3878-4fe6-ae67-754927a431d2:text_cleanup (Step text_cleanup for a230c90c-3878-4fe6-ae67-754927a431d2)"} INFO: 127.0.0.1:65288 - "POST /api/v1/projects/114a8883-e960-4b97-97c7-0ba00a469750/episodes/a230c90c-3878-4fe6-ae67-754927a431d2/steps/text_cleanup?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T02:18:04.741311+00:00", "level": "WARNING", "logger": "app.core.step_runner", "message": "[RECOVERY] step=text_cleanup status=running → force-like"} {"timestamp": "2026-07-10T02:18:04.744790+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step text_cleanup started (run_id=242fa792-f3ff-40e8-a7c0-d39c007d627e, model=gpt-luna)"} {"timestamp": "2026-07-10T02:18:04.749759+00:00", "level": "INFO", "logger": "app.modules.pipeline.text_cleaner", "message": "text_cleanup: PDF 금월도 1부_260226(최종수정본).pdf (434046 bytes, 18 pages) → model=gpt-luna"} 11:18:04 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-luna; provider = openai {"timestamp": "2026-07-10T02:18:04.755181+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-luna; provider = openai"} 11:18:05 - LiteLLM Router:INFO: router.py:1570 - litellm.completion(model=openai/gpt-5.6-luna) Exception litellm.BadRequestError: OpenAIException - Invalid MIME type. Only image types are supported. {"timestamp": "2026-07-10T02:18:05.618907+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-luna)\u001b[31m Exception litellm.BadRequestError: OpenAIException - Invalid MIME type. Only image types are supported.\u001b[0m"} 11:18:05 - LiteLLM Router:INFO: router.py:5437 - Trying to fallback b/w models {"timestamp": "2026-07-10T02:18:05.628323+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Trying to fallback b/w models"} {"timestamp": "2026-07-10T02:18:05.641006+00:00", "level": "ERROR", "logger": "app.core.step_runner", "message": "Step text_cleanup _execute_and_finalize crashed: litellm.BadRequestError: OpenAIException - Invalid MIME type. Only image types are supported.. Received Model Group=gpt-luna\nAvailable Model Group Fallbacks=None\nTraceback (most recent call last):\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/asyncify.py\", line 107, in run_async_function\n _ = asyncio.get_running_loop()\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\nRuntimeError: no running event loop\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/step_runner.py\", line 1224, in _execute_and_finalize\n result = self._execute(mode=execute_mode)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/steps/text_steps.py\", line 30, in _execute\n cleaned = extract_text_from_pdf_llm(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/pipeline/text_cleaner.py\", line 106, in extract_text_from_pdf_llm\n return _extract_pdf_bytes_llm(path.read_bytes(), model_alias, path.name)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/pipeline/text_cleaner.py\", line 60, in _extract_pdf_bytes_llm\n response = router.completion(\n ^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1475, in completion\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1472, in completion\n response = self.function_with_fallbacks(**kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 6020, in function_with_fallbacks\n return run_async_function(self.async_function_with_fallbacks, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/asyncify.py\", line 116, in run_async_function\n return run_in_new_loop()\n ^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/asyncify.py\", line 100, in run_in_new_loop\n return new_loop.run_until_complete(async_function(*args, **kwargs))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/homebrew/Cellar/python@3.12/3.12.13/Frameworks/Python.framework/Versions/3.12/lib/python3.12/asyncio/base_events.py\", line 691, in run_until_complete\n return future.result()\n ^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5634, in async_function_with_fallbacks\n return await self.async_function_with_fallbacks_common_utils(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5591, in async_function_with_fallbacks_common_utils\n raise original_exception\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5625, in async_function_with_fallbacks\n response = await self.async_function_with_retries(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5780, in async_function_with_retries\n self.should_retry_this_error(\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5984, in should_retry_this_error\n raise error\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5731, in async_function_with_retries\n response = await self.make_call(original_function, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5895, in make_call\n response = original_function(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1576, in _completion\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1542, in _completion\n response = litellm.completion(**input_kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/utils.py\", line 1772, in wrapper\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/utils.py\", line 1593, in wrapper\n result = original_function(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/main.py\", line 4420, in completion\n raise exception_type(\n ^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\", line 2456, in exception_type\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\", line 478, in exception_type\n raise BadRequestError(\nlitellm.exceptions.BadRequestError: litellm.BadRequestError: OpenAIException - Invalid MIME type. Only image types are supported.. Received Model Group=gpt-luna\nAvailable Model Group Fallbacks=None\n"} {"timestamp": "2026-07-10T02:18:05.641171+00:00", "level": "ERROR", "logger": "app.services.step_execution_service", "message": "Step text_cleanup failed: litellm.BadRequestError: OpenAIException - Invalid MIME type. Only image types are supported.. Received Model Group=gpt-luna\nAvailable Model Group Fallbacks=None"} INFO: 127.0.0.1:65297 - "GET /api/v1/projects/114a8883-e960-4b97-97c7-0ba00a469750/episodes/a230c90c-3878-4fe6-ae67-754927a431d2/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:65301 - "GET /api/v1/projects/114a8883-e960-4b97-97c7-0ba00a469750/episodes/a230c90c-3878-4fe6-ae67-754927a431d2/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T02:18:54.828166+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:114a8883-e960-4b97-97c7-0ba00a469750:a230c90c-3878-4fe6-ae67-754927a431d2:text_cleanup (Step text_cleanup for a230c90c-3878-4fe6-ae67-754927a431d2)"} INFO: 127.0.0.1:65301 - "POST /api/v1/projects/114a8883-e960-4b97-97c7-0ba00a469750/episodes/a230c90c-3878-4fe6-ae67-754927a431d2/steps/text_cleanup?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T02:18:54.836865+00:00", "level": "WARNING", "logger": "app.core.step_runner", "message": "[RECOVERY] step=text_cleanup status=running → force-like"} {"timestamp": "2026-07-10T02:18:54.839608+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step text_cleanup started (run_id=637b4d43-4452-4e81-b540-0faa84dfd1a4, model=gpt-luna)"} {"timestamp": "2026-07-10T02:18:54.844224+00:00", "level": "INFO", "logger": "app.modules.pipeline.text_cleaner", "message": "text_cleanup: PDF 금월도 1부_260226(최종수정본).pdf (434046 bytes, 18 pages) → model=gpt-luna"} 11:18:54 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-luna; provider = openai {"timestamp": "2026-07-10T02:18:54.848337+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-luna; provider = openai"} 11:18:55 - LiteLLM Router:INFO: router.py:1570 - litellm.completion(model=openai/gpt-5.6-luna) Exception litellm.BadRequestError: OpenAIException - Invalid MIME type. Only image types are supported. {"timestamp": "2026-07-10T02:18:55.733878+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-luna)\u001b[31m Exception litellm.BadRequestError: OpenAIException - Invalid MIME type. Only image types are supported.\u001b[0m"} 11:18:55 - LiteLLM Router:INFO: router.py:5437 - Trying to fallback b/w models {"timestamp": "2026-07-10T02:18:55.742866+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Trying to fallback b/w models"} {"timestamp": "2026-07-10T02:18:55.754419+00:00", "level": "ERROR", "logger": "app.core.step_runner", "message": "Step text_cleanup _execute_and_finalize crashed: litellm.BadRequestError: OpenAIException - Invalid MIME type. Only image types are supported.. Received Model Group=gpt-luna\nAvailable Model Group Fallbacks=None\nTraceback (most recent call last):\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/asyncify.py\", line 107, in run_async_function\n _ = asyncio.get_running_loop()\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\nRuntimeError: no running event loop\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/step_runner.py\", line 1224, in _execute_and_finalize\n result = self._execute(mode=execute_mode)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/steps/text_steps.py\", line 30, in _execute\n cleaned = extract_text_from_pdf_llm(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/pipeline/text_cleaner.py\", line 106, in extract_text_from_pdf_llm\n return _extract_pdf_bytes_llm(path.read_bytes(), model_alias, path.name)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/pipeline/text_cleaner.py\", line 60, in _extract_pdf_bytes_llm\n response = router.completion(\n ^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1475, in completion\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1472, in completion\n response = self.function_with_fallbacks(**kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 6020, in function_with_fallbacks\n return run_async_function(self.async_function_with_fallbacks, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/asyncify.py\", line 116, in run_async_function\n return run_in_new_loop()\n ^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/asyncify.py\", line 100, in run_in_new_loop\n return new_loop.run_until_complete(async_function(*args, **kwargs))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/homebrew/Cellar/python@3.12/3.12.13/Frameworks/Python.framework/Versions/3.12/lib/python3.12/asyncio/base_events.py\", line 691, in run_until_complete\n return future.result()\n ^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5634, in async_function_with_fallbacks\n return await self.async_function_with_fallbacks_common_utils(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5591, in async_function_with_fallbacks_common_utils\n raise original_exception\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5625, in async_function_with_fallbacks\n response = await self.async_function_with_retries(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5780, in async_function_with_retries\n self.should_retry_this_error(\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5984, in should_retry_this_error\n raise error\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5731, in async_function_with_retries\n response = await self.make_call(original_function, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5895, in make_call\n response = original_function(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1576, in _completion\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1542, in _completion\n response = litellm.completion(**input_kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/utils.py\", line 1772, in wrapper\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/utils.py\", line 1593, in wrapper\n result = original_function(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/main.py\", line 4420, in completion\n raise exception_type(\n ^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\", line 2456, in exception_type\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\", line 478, in exception_type\n raise BadRequestError(\nlitellm.exceptions.BadRequestError: litellm.BadRequestError: OpenAIException - Invalid MIME type. Only image types are supported.. Received Model Group=gpt-luna\nAvailable Model Group Fallbacks=None\n"} {"timestamp": "2026-07-10T02:18:55.754554+00:00", "level": "ERROR", "logger": "app.services.step_execution_service", "message": "Step text_cleanup failed: litellm.BadRequestError: OpenAIException - Invalid MIME type. Only image types are supported.. Received Model Group=gpt-luna\nAvailable Model Group Fallbacks=None"} INFO: 127.0.0.1:65311 - "GET /api/v1/projects/114a8883-e960-4b97-97c7-0ba00a469750/episodes/a230c90c-3878-4fe6-ae67-754927a431d2/steps HTTP/1.1" 200 OK INFO: 127.0.0.1:65316 - "GET /api/v1/projects/114a8883-e960-4b97-97c7-0ba00a469750/episodes/a230c90c-3878-4fe6-ae67-754927a431d2/steps HTTP/1.1" 200 OK {"timestamp": "2026-07-10T02:19:44.932471+00:00", "level": "INFO", "logger": "app.core.job_manager", "message": "Starting background job: step:114a8883-e960-4b97-97c7-0ba00a469750:a230c90c-3878-4fe6-ae67-754927a431d2:text_cleanup (Step text_cleanup for a230c90c-3878-4fe6-ae67-754927a431d2)"} INFO: 127.0.0.1:65316 - "POST /api/v1/projects/114a8883-e960-4b97-97c7-0ba00a469750/episodes/a230c90c-3878-4fe6-ae67-754927a431d2/steps/text_cleanup?mode=resume HTTP/1.1" 200 OK {"timestamp": "2026-07-10T02:19:44.941450+00:00", "level": "WARNING", "logger": "app.core.step_runner", "message": "[RECOVERY] step=text_cleanup status=running → force-like"} {"timestamp": "2026-07-10T02:19:44.944196+00:00", "level": "INFO", "logger": "app.core.step_runner", "message": "Step text_cleanup started (run_id=016324aa-e44c-443b-ba32-48320a30d382, model=gpt-luna)"} {"timestamp": "2026-07-10T02:19:44.948706+00:00", "level": "INFO", "logger": "app.modules.pipeline.text_cleaner", "message": "text_cleanup: PDF 금월도 1부_260226(최종수정본).pdf (434046 bytes, 18 pages) → model=gpt-luna"} 11:19:44 - LiteLLM:INFO: utils.py:4011 - LiteLLM completion() model= gpt-5.6-luna; provider = openai {"timestamp": "2026-07-10T02:19:44.952111+00:00", "level": "INFO", "logger": "LiteLLM", "message": "\nLiteLLM completion() model= gpt-5.6-luna; provider = openai"} 11:19:45 - LiteLLM Router:INFO: router.py:1570 - litellm.completion(model=openai/gpt-5.6-luna) Exception litellm.BadRequestError: OpenAIException - Invalid MIME type. Only image types are supported. {"timestamp": "2026-07-10T02:19:45.272835+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "litellm.completion(model=openai/gpt-5.6-luna)\u001b[31m Exception litellm.BadRequestError: OpenAIException - Invalid MIME type. Only image types are supported.\u001b[0m"} 11:19:45 - LiteLLM Router:INFO: router.py:5437 - Trying to fallback b/w models {"timestamp": "2026-07-10T02:19:45.279597+00:00", "level": "INFO", "logger": "LiteLLM Router", "message": "Trying to fallback b/w models"} {"timestamp": "2026-07-10T02:19:45.289225+00:00", "level": "ERROR", "logger": "app.core.step_runner", "message": "Step text_cleanup _execute_and_finalize crashed: litellm.BadRequestError: OpenAIException - Invalid MIME type. Only image types are supported.. Received Model Group=gpt-luna\nAvailable Model Group Fallbacks=None\nTraceback (most recent call last):\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/asyncify.py\", line 107, in run_async_function\n _ = asyncio.get_running_loop()\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\nRuntimeError: no running event loop\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/step_runner.py\", line 1224, in _execute_and_finalize\n result = self._execute(mode=execute_mode)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/steps/text_steps.py\", line 30, in _execute\n cleaned = extract_text_from_pdf_llm(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/pipeline/text_cleaner.py\", line 106, in extract_text_from_pdf_llm\n return _extract_pdf_bytes_llm(path.read_bytes(), model_alias, path.name)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/pipeline/text_cleaner.py\", line 60, in _extract_pdf_bytes_llm\n response = router.completion(\n ^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1475, in completion\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1472, in completion\n response = self.function_with_fallbacks(**kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 6020, in function_with_fallbacks\n return run_async_function(self.async_function_with_fallbacks, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/asyncify.py\", line 116, in run_async_function\n return run_in_new_loop()\n ^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/asyncify.py\", line 100, in run_in_new_loop\n return new_loop.run_until_complete(async_function(*args, **kwargs))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/homebrew/Cellar/python@3.12/3.12.13/Frameworks/Python.framework/Versions/3.12/lib/python3.12/asyncio/base_events.py\", line 691, in run_until_complete\n return future.result()\n ^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5634, in async_function_with_fallbacks\n return await self.async_function_with_fallbacks_common_utils(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5591, in async_function_with_fallbacks_common_utils\n raise original_exception\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5625, in async_function_with_fallbacks\n response = await self.async_function_with_retries(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5780, in async_function_with_retries\n self.should_retry_this_error(\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5984, in should_retry_this_error\n raise error\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5731, in async_function_with_retries\n response = await self.make_call(original_function, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 5895, in make_call\n response = original_function(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1576, in _completion\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/router.py\", line 1542, in _completion\n response = litellm.completion(**input_kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/utils.py\", line 1772, in wrapper\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/utils.py\", line 1593, in wrapper\n result = original_function(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/main.py\", line 4420, in completion\n raise exception_type(\n ^^^^^^^^^^^^^^^\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\", line 2456, in exception_type\n raise e\n File \"/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\", line 478, in exception_type\n raise BadRequestError(\nlitellm.exceptions.BadRequestError: litellm.BadRequestError: OpenAIException - Invalid MIME type. Only image types are supported.. Received Model Group=gpt-luna\nAvailable Model Group Fallbacks=None\n"} {"timestamp": "2026-07-10T02:19:45.289329+00:00", "level": "ERROR", "logger": "app.services.step_execution_service", "message": "Step text_cleanup failed: litellm.BadRequestError: OpenAIException - Invalid MIME type. Only image types are supported.. Received Model Group=gpt-luna\nAvailable Model Group Fallbacks=None"} INFO: 127.0.0.1:65323 - "GET /api/v1/projects/114a8883-e960-4b97-97c7-0ba00a469750/episodes/a230c90c-3878-4fe6-ae67-754927a431d2/steps HTTP/1.1" 200 OK INFO: Shutting down INFO: Waiting for application shutdown. INFO: Application shutdown complete. INFO: Finished server process [49677]