Skip to content

Conversation

@pory-gone
Copy link
Contributor

@pory-gone pory-gone commented Nov 21, 2025

Description

Fixed #2646

QR code payment status timer was stuck at 00:00, the cause was a timezone interpretation bug. GraphQL Date scalar returns ISO 8601 strings without the 'Z' UTC suffix (e.g., "2025-11-21T12:31:08"), causing browsers to interpret them as local time instead of UTC. This made invoices appear expired immediately in non-UTC timezones. This fix adds 'Z' to expiresAt timestamps when missing.

Screenshots

after.mp4

Additional Context

Also fixed a shadow variable bug in cancelAndReject that prevented proper state updates. added polling with FAST_POLL_INTERVAL_MS to keep payment status updated.

Checklist

Are your changes backward compatible? Please answer below:
Yes

On a scale of 1-10 how well and how have you QA'd this change and any features it might affect? Please answer below:
8/10

For frontend changes: Tested on mobile, light and dark mode? Please answer below:
nan

Did you introduce any new environment variables? If so, call them out explicitly here:
nan

Did you use AI for this? If so, how much did it assist you?
I used AI to create a strategy to catch and understand the bug to apply the correct changes

@pory-gone pory-gone marked this pull request as ready for review November 21, 2025 13:45
@huumn
Copy link
Member

huumn commented Nov 22, 2025

Thank you for identifying the issue! For raw queries, we return timestamp fields as strings which are often stored without time zones, and the serialization of Date scalar would simply pass along the string. The solution, I think, is to always add a time zone on serialization.

I'll create an award for your work.

@huumn huumn closed this Nov 22, 2025
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.

QR codes no longer show payment status

2 participants