Uvicorn заводил свои обработчики с propagate=False, поэтому его строки шли мимо нашего формата и рвались посреди слова. log_config=None отдаёт всё общему обработчику. Занятый порт сервис теперь замечает до запуска и объясняет, что делать, вместо строки uvicorn про Errno 10048. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>