During playlist-service rollout the Kafka adapter suppressed expected context cancellation, but the common dispatcher logged the returned error again as error/code 500. All four dispatcher error log sites now use a shared classifier: cancellation-only errors become debug only when the caller context is canceled; deadlines, unrelated failures and multi-cause errors remain error/code 500. Original errors and causes still return to callers, with rollback and delivery order preserved. Tests cover classification, wrapped and multi-cause failures, receive cancellation, independent receive failure during shutdown, and canceled send retaining the outbox without deletion or commit. Fixed an existing race in the test channel that reused a loop-variable address on Go 1.18. Validation: go test ./..., go test -race ./..., go vet ./.... Kafka acknowledgement versus database commit ordering is outside this logging fix; this MR does not claim end-to-end delivery verification. No release tag or consumer changes included.