bug: webapp rejects API_RATE_LIMIT_METRICS_BUCKET_SECONDS=15 although the schema says divisors of 60 are valid
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
- #4993 par @StackedByAdit — fermée sans fusion
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 20/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- À l'abandon
- Stack technique
- typescript
- Domaine
- backend
Piste de recherche
Commencez par apps/webapp/app/env.server.ts:777-785 et confirmez que .multipleOf(10) rejette 15 tandis que refine autorise les diviseurs de 60 ; le premier geste consiste à consulter la PR fermée #4993 pour voir pourquoi la correction précédente n'a pas été fusionnée. L'objectif est atteint lorsque l'analyse de "15" et "120" réussit, que "7" échoue toujours et que la suite env de Vitest du webapp reste verte.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Provide environment information
Not environment-specific: found in the webapp source at main @ c2b7a72180 and reproduced with the webapp's own Vitest suite (macOS arm64, pnpm).
Describe the bug
The webapp refuses to start with API_RATE_LIMIT_METRICS_BUCKET_SECONDS=15, although the schema's own rule says 15 is valid.
In apps/webapp/app/env.server.ts:777-785:
API_RATE_LIMIT_METRICS_BUCKET_SECONDS: z.coerce.number().int().positive()
.multipleOf(10)
.refine((seconds) => 60 % seconds === 0 || seconds % 60 === 0, {
message: "must divide or be a multiple of 60 so buckets align to minute boundaries",
})
The refine accepts any divisor or multiple of 60, which is the alignment the metrics aggregator needs. .multipleOf(10) runs first, though, and rejects the minute-aligned divisors 15 (and 1–6, 12). Environment parsing fails at startup with a Zod "multiple of 10" error.
Expected: 15 (and 120) parse, 7 is still rejected.
Reproduction repo
N/A (schema test against this repo, below)
To reproduce
- Set
API_RATE_LIMIT_METRICS_BUCKET_SECONDS=15and start the webapp. Env validation fails. - Or, as a test: parse
"15"with the schema entry above. It fails withNumber must be a multiple of 10.
Additional information
A fix is ready on the breken-ai/trigger.dev fork (breken/fix-rate-limit-metrics-bucket-validation):
- It drops the contradictory
.multipleOf(10)and moves the schema intoapp/utils/apiRateLimitMetricsBucketSecondsSchema.ts, so it can be tested. - The regression test asserts
15and120parse and7fails. It's red on main and green with the fix. - Env + new schema tests: 19 passed. oxfmt, oxlint and webapp typecheck are clean.
I'll open it as a draft PR with fixes #<this> once the account is vouched.
Prepared with AI assistance (Claude) from the breken-ai account.
- Langage dominant
- TypeScript
- Étoiles
- 16.5k
- Forks
- 1.5k
- Merge moyen
- 1 j 15 h
- PR mergées (30 j)
- 17
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de triggerdotdev/trigger.dev
-
bug: retry.fetch ignores the caller's abort signal and retries aborted requestsPeut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
triggerdotdev/trigger.dev#5116 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
bug: Chat transport crashes on Safari < 17.4: AbortSignal.any is not a functionPeut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
triggerdotdev/trigger.dev#5098 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
bug: Side menu items lose their active state on detail pagesPeut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
triggerdotdev/trigger.dev#5088 ·
Les mainteneurs répondent en général sous 1 jour
-
bug: RBAC loader logs "plugin found but failed to load" when @triggerdotdev/plugins is simply not installedPeut-être à nouveau libre @itsfaryal l’a pris il y a 17 jours, et aucune pull request n’est ouverte. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
triggerdotdev/trigger.dev#5083 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
triggerdotdev/trigger.dev#5072 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de triggerdotdev/trigger.dev
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
bug platform-android
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Termix-SSH/Mobile#146 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
devswha/herdr-web-ui#3875 ·
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
-
area: runtime chore cli consistency dependencies developer-experience difficulty: easy discovery documentation enhancement good first issue help wanted hygiene json-output packaging priority: P3 tests version
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour