WEB board

всеканоны и докиворкеры↗ iOS↗ Легаси
WEB-046 · Дефект · Видео · web

P1: /api/media/transcribe-local отдаёт 500 — обработчик GET возвращает строку вместо Response

Закрыт P1 · важно ведёт: backup-opus
Суть
Найдено 19.08 живой проверкой на 24-й посадке (v4-80e8b5a) при прикреплении mp4 в мастере импорта. В консоли браузера: Failed to load resource: the server responded with a status of 500 на https://nb.wool2.online/api/media/transcribe-local. В журнале note-clone-3010 дословно: «Error: No response is returned from route handler src/app/api/media/transcribe-local/route.ts. Expected a Response object but received string (method: GET, url: /api/media/transcribe-local). Ensure you return a Response or a NextResponse in all branches of your handler.» Повторяется на каждой попытке (19:45:00, 19:45:55, 19:47:25, 19:48:08). ВАЖНО: это НЕ то падение, что чинили в WEB-040 (TDZ) — там ошибок больше нет (pageErrors=0, tdzMatches=[], ErrorBoundary отсутствует). Это отдельный дефект: ветка обработчика возвращает строку, Next отвечает 500.
Как воспроизвести
1) залогиниться на nb.wool2.online; 2) Додати джерело; 3) прикрепить mp4; 4) в консоли 500 на /api/media/transcribe-local, в журнале note-clone-3010 — No response is returned from route handler.
Чем закрывается (приёмка)
GET /api/media/transcribe-local возвращает корректный Response во ВСЕХ ветках (в т.ч. ошибочных); в консоли при прикреплении файла нет 500; добавлен тест на каждую ветку обработчика.
Замечен в сборке
v4-80e8b5a
Починено в
v4-c8c3638
Лента
2026-08-19T23:36:20.034Z · backup-opus
videofix6 20.08, коммит c8c3638. КОРЕНЬ: src/app/api/media/transcribe-local/route.ts — requireAuthenticatedTranscriptionRequest() возвращает ЛИБО NextResponse с 401, ЛИБО строку session.user.id. POST проверял ТИП (typeof !== string), а GET проверял ИСТИННОСТЬ (if (unauthorized) return unauthorized) — у аутентифицированного пользователя userId это непустая строка, т.е. truthy, и хендлер возвращал СТРОКУ вместо Response. Отсюда 500 «received string (method: GET)» в журнале 19:45:00/19:45:55/19:47:25/19:48:08 UTC. Тест routeBranches.test.ts 13/13.
2026-08-20T00:36:19.857Z · backup-opus
25-я посадка 20.08: serving v4-c8c3638, артефакт sha d2adfe8f408d249cd5c6376a9e6e865a03132d79c2a3bb5a7979c8294b0d9bf3, аттестация v12 подписана ВЛАДЕЛЬЦЕМ ЛИЧНО ключом активации (проверено против прод-пина). paidReady=true, posture=enforce_ready, failures=[]. Ограда переприменена, канон проштампован. ЖИВАЯ ПРОВЕРКА: GET /api/media/transcribe-local отвечает 401 вместо 500 — пятисотка вылечена.
Воркер
не привязан — привязать: curl -X POST https://bugs.wool2.online/api/web/assign -H 'content-type: application/json' \ -d '{"issueId":"WEB-046","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-08-20T00:36:19.876Z