Pre-Release Test Report

2026-09-03  ·  QA environment (medimesh-qa)  ·  ← all reports
8
Failing test cases
8
Jira tickets filed
Red
Overall result

Full validation run against QA (medimesh-qa) covering audio analysis, document analyze, SmartSlide, finalization (screenshots/cut verification), transcription, storage migration, and the KB onboarding callback. Each failure below was root-caused against the actual service logs (not just the test's own report) before filing. All tickets are in Selected for Development.

Failing test cases

DEV-6055 Selected for Development
Audio analysis pipeline: ActionDetectionOrchestrator can get stuck in a tool-call loop and fail with generic 51006
Suite: audioanalysis  ·  Test: "Translation + Visual"  ·  Session 22d660e5-…
The visual-tool orchestrator (qwen36-27b) looped on the same clip window without ever producing a final JSON, hit the 20-iteration cap, and surfaced as the generic PIPELINE (51006) error rather than a diagnosable failure. qwen itself was healthy throughout.
DEV-6056 Selected for Development
Core /document/analyze falsely rejects non-en/de languages when caller uses a user JWT
Suite: document_analyze  ·  Test: "language=fr, no silent fallback"  ·  Session f7a8e8b5-…
Core's language-list lookup gets a 403 when called with a user JWT (needs the service API key), and silently falls back to a hardcoded 2-language list (en/de only) — so any non-en/de request from a browser/user session is wrongly rejected as "unsupported". Likely a live production bug, not just a test gap.
DEV-6057 Selected for Development
SmartSlide analysis: concurrent slide-media downloads fail — ThreadPoolExecutor doesn't propagate contextvars
Suite: debug_smartslide_analysis  ·  Test: "basic run (en, 2 slides)"  ·  Session 7c22ef04-…
Slide-image downloads run inside a bare ThreadPoolExecutor, which doesn't copy the caller's contextvars-based auth context into worker threads — so the DEV-5262 owner-context guard blocks every download as "anonymous", producing zero step data even on a fully authenticated request.
DEV-6058 Selected for Development
Finalization screenshot quality check produces near-100% false positives on SmartSlide/presentation videos
Suite: finalization  ·  Test: "Finalize SmartSlide — Audio Download"  ·  Session e99afcc8-…
The screenshot quality thresholds (brightness/contrast) are tuned for video/screen-recording footage. A static PPTX slide's plain background legitimately trips both checks, so 69 of 76 screenshots were flagged "overexposed"/"featureless" even though nothing is actually wrong.
DEV-6059 Selected for Development
VerifyCuts: spurious fade detected + cut-duration mismatch on "Finalize Long Video (1080p)"
Suite: finalization  ·  Test: "Finalize Long Video (1080p)"  ·  Session e99afcc8-…
Every expected cut was detected correctly (0.99 confidence), but one extra "spurious" fade threw off the duration check. Root cause undetermined — the detailed diagnostic log was lost to a mid-run QA redeploy, which is itself flagged as a process gap in the ticket.
DEV-6060 Selected for Development
Vosk→parakeet retirement coercion silently drops language-detection metadata and mis-keys DB storage
Suite: transcription  ·  Tests: 4 Vosk-labelled cases  ·  Session 7c22ef04-…
Requests for the retired "vosk" method are coerced to "parakeet" before the language-detection and DB-storage-key logic runs — so detected_language/confidence are silently skipped, and results get stored under the "parakeet" key instead of "vosk". Affects any real caller still requesting vosk explicitly.
DEV-6061 Selected for Development
Storage migration cancel is not honored during the SCANNING phase
Suite: storage_migration  ·  Tests: [2] and [5]  ·  Session 50cb21c9-…
The scan-phase cancellation check increments its counter by whole S3 page sizes and only fires on an exact multiple of 200 — on a bucket with many small prefixes (27k objects / 11.6k prefixes) it can skip every checkpoint for the full ~6-minute scan, so cancel silently does nothing until the scan finishes on its own.
DEV-6062 Selected for Development
/api/internal/kb/onboarding-callback returns 500 for a malformed Bearer token instead of 401
Suite: kb_callback_auth  ·  Session 50cb21c9-…
FallbackJwtDecoder throws a generic JwtException (not BadJwtException) when every decoder rejects a token, so Spring Security can't translate it into a clean 401 and it escapes as an uncaught 500 instead. One-line fix identified.