mirror of
https://github.com/zitadel/zitadel.git
synced 2025-11-01 00:46:23 +00:00
fix(projections): handle reduce error by updating failed events (#10726)
# Which Problems Are Solved I noticed that a failure in the projections handlers `reduce` function (e.g. creating the statement or checking preconditions for the statement) would not update the `failed_events2` table. This was due to a wrong error handling, where as long as the `maxFailureCount` was not reached, the error was returned after updating the `failed_events2` table, which causes the transaction to be rolled back and thus losing the update. # How the Problems Are Solved Wrap the error into an `executionError`, so the transaction is not rolled back. # Additional Changes none # Additional Context - noticed internally - requires backport to v3.x and v4.x
This commit is contained in:
@@ -51,7 +51,7 @@ func (h *Handler) eventsToStatements(tx *sql.Tx, events []eventstore.Event, curr
|
||||
if shouldContinue := h.handleFailedStmt(tx, failureFromEvent(event, err)); shouldContinue {
|
||||
continue
|
||||
}
|
||||
return statements, err
|
||||
return statements, &executionError{err}
|
||||
}
|
||||
offset++
|
||||
if !previousPosition.Equal(event.Position()) {
|
||||
|
||||
Reference in New Issue
Block a user