# Usage-limit banner hides the snooze action when snooze and auto-resume are both armed · Issue \#21397 · pingdotgg/t3code

[View on GitCafe](https://git.cafe/pingdotgg/t3code/issues/21397)

Repository: [pingdotgg/t3code](https://git.cafe/pingdotgg/t3code)

Visibility: public

State: completed

Priority: 0

## Description

[Discussion and activity](https://git.cafe/pingdotgg/t3code/issues/21397)

---

## Honest context

This is a follow up to #21384, which was closed as not planned. That closing was about the bigger ask (per-thread snooze and resume choices carrying over to later limits). I accept that part and will take it to Ideas if I want it.

This issue is only about the banner itself. Julius looked at the screenshot below and said the banner should have a snooze button as well, and that it looks like a bug. So I am filing this as a separate, narrow bug.

## What the screenshot shows

A thread hit the Claude 5-hour usage limit. The banner reads "Usage limit reached, Resets 10/19/2026, 8:50:00 AM" and shows only "Cancel auto-resume". There is no "Snooze until reset" button and no "Wake now" button, even though the thread has both snooze and resume armed for this reset.

![Usage limit banner showing only Cancel auto-resume, with no snooze button](https://raw.githubusercontent.com/Wraient/t3code/issue-assets/usage-banner/issue-assets/banner-snooze.png)

## Why this is a bug, from the code

In `apps/web/src/components/chat/UsageLimitRecoveryBanner.tsx`, "Cancel auto-resume" showing means `scheduled` is true. The Snooze button renders only when `snoozed` is false, so its absence means the banner computed `snoozed` as true: the thread has both snooze and resume armed for this reset. In that combined state the web banner offers nothing for the snooze half.

Mobile disagrees with web here. The same state in `apps/mobile/src/features/threads/UsageLimitRecoveryCard.tsx` renders a "Wake now" button, so web is the inconsistent one.

On top of that, the `snoozed` check compares `snoozedUntil` to the reset time with no clock check. Timer wakes never clear `snoozedUntil` on the server, so after the reset passes the banner can keep treating the thread as snoozed and the button never comes back for that cycle.

## Expected

When both snooze and resume are armed, the banner should still show a snooze state action (matching mobile's "Wake now"), and once the wake time has passed it should stop treating the thread as snoozed so "Snooze until reset" is offered again.

