Handle expired checkout sessions with redirect #6103
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix: Handle expired checkout sessions gracefully
Resolves #6080
Problem
Customers who idle at checkout pages and return later (after 30 minutes) encounter 404/410 errors when trying to update their checkout session. This creates confusion and poor user experience, forcing customers to restart their checkout process from scratch.
Current behavior:
Solution
Instead of returning errors for expired sessions, automatically create new checkout sessions with identical parameters within secure boundaries. This provides a seamless experience where customers can continue from where they left off, while maintaining system integrity.
New behavior:
Security Boundaries
To prevent system abuse and ensure proper expiration, sessions are only recreated when:
✅ Allowed Recreation:
open
❌ Blocked Recreation - Sessions properly expire when:
Testing
Backend Tests (
tests/checkout/test_service.py
)Manual Testing Scenarios
Migration & Deployment