Skip to content

Read TrainExceptionData from Exception.Data in AddException#50

Merged
Theauxm merged 1 commit intomainfrom
fix/preserve-original-exception
Apr 3, 2026
Merged

Read TrainExceptionData from Exception.Data in AddException#50
Theauxm merged 1 commit intomainfrom
fix/preserve-original-exception

Conversation

@Theauxm
Copy link
Copy Markdown
Member

@Theauxm Theauxm commented Apr 3, 2026

Summary

  • Update Metadata.AddException to read structured TrainExceptionData from Exception.Data first (local execution), fall back to JSON message deserialization (remote/legacy), then plain exception
  • Prefer TrainExceptionData.StackTrace over the re-thrown exception's stack trace
  • Add E2E tests covering the full Junction → Monad → ServiceTrain → Metadata → Database pipeline

Test plan

  • ExceptionPersistenceTests — 15 E2E tests against InMemory provider: junction failures, HTTP errors, JSON messages, special chars, multi-junction, database round-trip, dashboard/API compatibility
  • BroadcastLifecycleHookTests — failure fields flow correctly to broadcaster with TrainExceptionData

Update Metadata.AddException to prefer structured data from Exception.Data
over JSON message deserialization. Add E2E tests verifying failure fields
persist correctly through the full pipeline for dashboard/API/broadcaster.
@Theauxm Theauxm merged commit f5da093 into main Apr 3, 2026
1 of 3 checks passed
@Theauxm Theauxm deleted the fix/preserve-original-exception branch April 3, 2026 16:18
@traxsharp
Copy link
Copy Markdown

traxsharp Bot commented Apr 3, 2026

This PR is included in version 1.30.1

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.

1 participant