mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-22 01:51:12 -05:00
Fix critical error handling gaps in submission pipeline
Addressed real error handling issues identified during comprehensive
pipeline review:
1. **process-selective-approval edge function**
- Added try-catch blocks around idempotency key updates (lines 216-262)
- Prevents silent failures when updating submission status tracking
- Updates are now non-blocking to ensure proper response delivery
2. **submissionItemsService.ts**
- Added error logging before throwing in fetchSubmissionItems (line 75-81)
- Added error handling for park location fetch failures (lines 99-107)
- Location fetch errors are now logged as non-critical and don't block
submission item retrieval
3. **notify-moderators-submission edge function**
- Added error handling for notification log insert (lines 216-236)
- Log failures are now non-blocking and properly logged
- Ensures notification delivery isn't blocked by logging issues
4. **upload-image edge function**
- Fixed CORS headers scope issue (line 127)
- Moved corsHeaders definition outside try block
- Prevents undefined reference in catch block error responses
All changes maintain backward compatibility and improve pipeline
resilience without altering functionality. Error handling is now
consistent with non-blocking patterns for auxiliary operations.
This commit is contained in:
@@ -213,7 +213,7 @@ serve(async (req) => {
|
||||
);
|
||||
|
||||
// Log notification in notification_logs with idempotency key
|
||||
await supabase.from('notification_logs').insert({
|
||||
const { error: logError } = await supabase.from('notification_logs').insert({
|
||||
user_id: '00000000-0000-0000-0000-000000000000', // Topic-based
|
||||
notification_type: 'moderation_submission',
|
||||
idempotency_key: idempotencyKey,
|
||||
@@ -225,13 +225,23 @@ serve(async (req) => {
|
||||
}
|
||||
});
|
||||
|
||||
if (logError) {
|
||||
// Non-blocking - notification was sent successfully, log failure shouldn't fail the request
|
||||
edgeLogger.warn('Failed to log notification in notification_logs', {
|
||||
action: 'notify_moderators',
|
||||
requestId: tracking.requestId,
|
||||
error: logError.message,
|
||||
submissionId: submission_id
|
||||
});
|
||||
}
|
||||
|
||||
const duration = endRequest(tracking);
|
||||
edgeLogger.info('Successfully notified all moderators via topic', {
|
||||
edgeLogger.info('Successfully notified all moderators via topic', {
|
||||
action: 'notify_moderators',
|
||||
requestId: tracking.requestId,
|
||||
traceId: tracking.traceId,
|
||||
duration,
|
||||
transactionId: data?.transactionId
|
||||
transactionId: data?.transactionId
|
||||
});
|
||||
|
||||
return new Response(
|
||||
|
||||
Reference in New Issue
Block a user