Fehlerbehebung · Vercel
Vercel-Cron-Limits erklärt: Hobby vs. Pro
Alle Limits für Vercel-Cronjobs an einem Ort — 2 Jobs und einmal täglich im Hobby-Plan, das Stundenfenster-Timing, nur UTC, Function-Laufzeitlimits — und was zu tun ist, wenn Sie herauswachsen.
Vercel-Cronjobs kommen mit Plan-Limits, die man leicht übersieht — bis sie zuschlagen. Hier sind alle an einem Ort, samt Auswegen.
Die Limits auf einen Blick
| Hobby | Pro | |
|---|---|---|
| Cronjobs pro Projekt | 2 | 40 |
| Maximale Frequenz | Einmal täglich | Minutengenaue Zeitpläne |
| Timing-Präzision | Innerhalb der geplanten Stunde | Minutengenau |
| Zeitzone | Nur UTC | Nur UTC |
| Retries bei Fehlern | Keine | Keine |
| Fehler-Alerts | Keine | Keine |
| Aufruf | GET, unterliegt maxDuration | GET, unterliegt maxDuration |
Drei davon überraschen fast alle:
1. „Einmal täglich, irgendwann in der Stunde“ (Hobby)
Im Hobby-Plan bedeutet 0 3 * * * nicht 03:00 — sondern irgendwo zwischen
03:00 und 03:59 UTC. Das ist bewusste Lastverteilung. Konsequenzen:
- aufeinanderfolgende Läufe können ~23 bis ~25 Stunden auseinanderliegen — bauen Sie keine „exakt 24h“-Annahmen in den Job;
- ein „Mitternachts-Cleanup“ kann um 00:47 feuern und mit frühem Morgen-Traffic kollidieren;
- untertägig geht gar nichts:
*/10 * * * *oder0 */6 * * *sind im Hobby-Plan ungültig.
2. Nur UTC — auf jedem Plan
Es gibt keine Zeitzonen-Einstellung. Lautet die Anforderung „09:00 in Berlin“,
feuert Ihr Cron im Sommer um 07:00 UTC und im Winter um 08:00 UTC — jemand muss
zweimal im Jahr die vercel.json anpassen und neu deployen.
3. Keine Retries, keine Alerts — das Limit, das nirgendwo steht
Das leise Limit: Ein Cron-Aufruf, der mit 500 fehlschlägt oder in den Timeout läuft, ist einfach vorbei. Kein Retry, keine E-Mail, keine Warnung im Dashboard. Auf keinem Plan. Die Vercel-Cron-Fehlerbehebung behandelt die Fehlermodi im Detail.
Wenn Sie an die Limits stoßen
Upgrade auf Pro löst Frequenz und Präzision — aber nicht Zeitzonen, Retries oder Alerting.
Oder trennen Sie Trigger und Compute. Ihre Route bleibt, wo sie ist; ein externer Scheduler ruft sie auf:
jobs:
- id: cleanup
name: Cleanup
kind: http
method: GET
url: https://ihre-app.vercel.app/api/cleanup
schedule: "*/10 * * * *" # jede Frequenz, jeder Plan
timezone: Europe/Berlin # echte Zeitzonen, DST-bewusst
retries: 3 # Retries mit Backoff
headers:
Authorization: Bearer ${CRON_SECRET}
Das bringt untertägige Zeitpläne auch für Hobby-Projekte, minutengenaues
Timing, Zeitzonen pro Job, Retries und Fehler-Alerts (E-Mail, Slack, Discord,
Telegram) — während die Function weiter auf Vercel läuft.
steadycron import vercel konvertiert Ihre bestehende vercel.json in einem
Befehl: siehe Migration von Vercel-Cron.
Häufige Fragen
Wie viele Cronjobs erlaubt der Vercel-Hobby-Plan?
Zwei Cronjobs, jeder höchstens einmal pro Tag. Zeitpläne häufiger als täglich sind im Hobby-Plan ungültig und laufen nicht wie geschrieben.
Wie genau ist das Vercel-Cron-Timing im Hobby-Plan?
Bewusst ungenau: Der Lauf landet irgendwann innerhalb der geplanten Stunde. 0 3 * * * bedeutet „zwischen 03:00 und 03:59 UTC“. Minutengenauigkeit erfordert den Pro-Plan.
Können Vercel-Cronjobs in meiner lokalen Zeitzone laufen?
Nein — Zeitpläne sind auf jedem Plan nur UTC, mit Standard-Cron (5 Felder) und ohne Sekundenfeld. Ein „9-Uhr-Berlin“-Job verschiebt sich bei jeder Zeitumstellung um eine Stunde.
Wiederholt Vercel fehlgeschlagene Cronjobs?
Nein, auf keinem Plan. Ein fehlgeschlagener Aufruf wird geloggt — das war's. Keine Retries, keine Fehler-Alerts. Wenn ein Lauf wichtig ist: Heartbeat-Monitor ergänzen oder die Route von einem Scheduler mit Retries aufrufen lassen.