Skip to content

Fix/issue 770 matrix swallows errors - #1165

Draft
mborodii-prog wants to merge 4 commits into
mainfrom
fix/issue-770-matrix-swallows-errors
Draft

Fix/issue 770 matrix swallows errors#1165
mborodii-prog wants to merge 4 commits into
mainfrom
fix/issue-770-matrix-swallows-errors

Conversation

@mborodii-prog

Copy link
Copy Markdown
Contributor

Summary

  • Fix matrix write/run silently swallowing worker-thread errors: executor.submit(...) futures were never appended to the futures list, so .result() was never called and any exception raised inside a permutation (missing column, bad write target, etc.) was silently discarded — the matrix write/run appeared to succeed even when it failed.
  • Add regression tests covering a full failure in matrix run, a full failure in matrix write, and a partial failure (one of several permutations fails)
    in matrix write.

Fixes #770

Test plan

  • pytest tests/connectors/test_matrix.py — 24 passed
  • Manually reproduced the original swallowed-error behavior pre-fix and confirmed all 4 scenarios now raise correctly post-fix

mborodii-prog and others added 4 commits September 4, 2026 07:42
matrix.write() and matrix.run() submitted each permutation's
sub-recipe to a ThreadPoolExecutor but never appended the returned
Future to the futures list, so the "wait for all futures" loop always
iterated over an empty list. Future.result() was never called, so any
exception raised inside a worker thread (e.g. a missing column) was
captured on the Future and silently discarded when the executor's
`with` block exited, making the matrix write/run appear to succeed.

Fixes #770

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fd6Bm79CWu2ohhNdZD48Dz
Covers the fix for #770: a custom function that always raises inside
a matrix run action, inside a matrix write action, and inside just
one of several write permutations (partial failure) - all previously
swallowed silently, now correctly propagate as exceptions.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fd6Bm79CWu2ohhNdZD48Dz
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fd6Bm79CWu2ohhNdZD48Dz
OpenAI's Responses API now returns 404 (model_not_found) for an
unrecognized model instead of 400, so the per-row error string
propagated by extract.ai reports status=404, not status=400.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KexjhJSpCUe24n5wjWihTW
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

matrix write swallows errors

1 participant