Reward erstellt aber nichts passiert
Klassisches Symptom: Du hast einen Channel-Points-Reward angelegt, dem eine Action zugeordnet, eingeloest — und nichts. Gehe die Diagnose streng der Reihe nach durch. Nicht die Action neu bauen, bevor die Stufen davor sauber sind. Die Pipeline laeuft in dieser Reihenfolge: Twitch-Reward → Twitch-EventSub → Chatlix-Worker → Event-Log → Action → (optional) Connect/OBS.
1. Twitch-Reward aktiv?
Oeffne im Twitch-Dashboard die Channel-Points-Rewards. Pruefe:
- Ist der Reward auf enabled?
- Steht er auf Pause? Twitch pausiert Rewards automatisch, wenn der Streamer offline ist und die Option
Only redeemable while livegesetzt ist. - Stimmt der Cost mit dem ueberein, was Zuschauer sehen? Wenn der Cost niedriger ist und das Redeem mit
Not enough pointsfehlschlaegt, bekommt Chatlix kein Event. - Ist das Auto-Fulfill-Flag korrekt? Bei
Skip Reward Requests Queue = offmuss der Streamer manuellMark as Fulfilleddruecken — bis dahin bleibt das Redeem auf Twitch-Seite in der Warteschlange, das EventSub-Event kommt aber trotzdem sofort.
Wenn der Reward nicht aktiv ist, kommt bei Chatlix kein einziges Event an. Das ist die haeufigste Ursache.
2. Event-Log zeigt Channel-Points-Trigger?
Im Dashboard unter /dashboard/events filterst du nach Typ twitch.channel_points.redeem oder dem konkreten Reward-Namen. Pruefe einen frischen Test-Redeem (lass jemanden den Reward einloesen):
- Eintrag erscheint — Twitch-Webhook funktioniert. Weiter zu Schritt 3.
- Kein Eintrag — Twitch-EventSub-Subscription fuer
channel.channel_points_custom_reward_redemption.addist kaputt oder fehlt. Geh ins/dashboard/connect-Twitch-Tab und re-authorize. Manchmal sind nach OAuth-Renewal die Channel-Points-Subscriptions weg, weil der Scopechannel:read:redemptionsbeim Reconnect nicht erneut erteilt wurde.
Der Event-Log ist die Quelle der Wahrheit. Wenn kein Event dort steht, ist das Problem vor Chatlix — meist auf Twitch-Seite oder in der EventSub-Subscription, nicht im Reward selbst.
Wichtig fuer wiederkehrende Aussetzer: Twitch kuendigt EventSub-Subscriptions serverseitig, wenn dein Webhook-Endpoint zu oft nicht rechtzeitig mit 200 antwortet (Cost-Limit-Sperre). Das aeussert sich so, dass mehrere Reward-Typen gleichzeitig aufhoeren zu triggern, nicht nur einer. Wenn das der Fall ist, hilft nur ein vollstaendiges Re-Pairing im Twitch-Tab — nicht das einzelne Reward neu anlegen.
3. Action isoliert testen
Wenn das Event ankommt, aber die Action nichts tut: Im Dashboard unter /dashboard/actions jede gemappte Action einzeln per « Test ausfuehren » triggern. Damit umgehst du den Reward-Pfad komplett.
- Test funktioniert — Mapping zwischen Reward und Action ist kaputt. Pruefe in der Reward-Konfiguration, ob die richtige Action verknuepft ist.
- Test scheitert — Die Action selbst hat ein Problem. Lies die Fehlermeldung im Test-Output. Typisch: OBS-Source-Name geaendert, AI-Credits leer, externe URL 5xx.
Bei Sound-Actions gibt es zwei komplett unterschiedliche Abspielwege — das ist eine haeufige Verwechslungsquelle: Browser-Sound laeuft ueber die Overlay-BrowserSource in OBS (siehe Seite « Audio reagiert nicht »), lokaler Sound (Sound-Presets) laeuft direkt auf dem Streamer-PC ueber Chatlix Connect, komplett ohne OBS-Audio-Pfad. Wenn eine Sound-Action als local.sound_play konfiguriert ist, hilft OBS-Mixer-Diagnose gar nichts — dann muss Connect online sein und das Preset lokal registriert (siehe Schritt 4 und Seite « Connect-Status: offline »).
4. Connect / OBS online?
Nur fuer OBS-Actions und lokale lokale Sound-Presets relevant. Im Dashboard unter /dashboard/connect:
- Connect-Status
online? Wenn nicht, siehe Seite « Connect-Status: offline ». - OBS-Status
connected? Wenndisconnected, lauft OBS und ist OBS-WebSocket aktiv (Werkzeuge/Extras → WebSocket-Server-Einstellungen → Aktivieren)? - Stimmt der Port? Default
4455, in der lokalenconnect.json(Abschnittmodules.obs.port) muss derselbe Wert stehen wie in OBS.
Eine OBS-Action mit Connect: offline wird vom Event-Log als skipped: connect_offline markiert — nicht als Fehler. Bei lokalen Sound-Presets analog: executor_unavailable bedeutet, Connect laeuft zwar, aber der lokale Sound-Player-Backend ist nicht verfuegbar (z.B. kein unterstuetzter Player auf dem System installiert) — kein Chatlix-seitiger Fehler.
5. Zeitfenster und Cooldown
Wenn alles oben sauber ist, pruefe Reward-spezifische Limits:
- Cooldown auf Twitch-Seite — Reward hat einen Global- oder Per-User-Cooldown.
- Cooldown in der Chatlix-Action — Manche Actions haben eigene Throttles, sichtbar in der Action-Konfiguration.
- Quiet Hours — Achtung, das ist kein allgemeiner Action-Scheduler: die Quiet-Hours-Zeitfenster (
quiet_hours_start/quiet_hours_end) gehoeren zum Stream-Commerce/Link-Autopost-Feature und blocken dort nur automatische Posts — sie blocken keine Channel-Points-Reward-Actions.
Wenn eine Action trotz erfolgreichem Event nicht laeuft, ist Quiet Hours also kein Reward-Verdaechtiger — pruefe stattdessen die Cooldowns oben und Schritt 3 (Action isoliert testen).
Verwandtes Symptom: Bot reagiert generell nicht (nicht nur Rewards)
Wenn gar keine Events mehr ankommen — auch keine Chat-Commands, Follows oder Subs — ist es kein Reward-spezifisches Problem, sondern der Twitch-Worker-Prozess selbst haengt oder ist neu gestartet und hat den Chat-Client nicht wieder verbunden. Das Event-Log zeigt in dem Fall ueberhaupt keine frischen Eintraege, unabhaengig vom Event-Typ. Das ist ein Fall fuer den Support — schick den Zeitpunkt, ab dem nichts mehr ankam, mit. Intern wird dafuer der Redis-Kontrollkanal des Twitch-Adapters (Praefix streaming:control:twitch) und der laufende Node-Worker-Prozess geprueft (nicht clientseitig loesbar).
Wenn alles passt und es trotzdem nicht laeuft
Nimm einen Screenshot vom Event-Log-Eintrag (mit Trigger-ID) und schick ihn an den Support. Die Trigger-ID ist der eindeutige Anker, mit dem wir das Event durch die Pipeline (EventSub-Empfang → Worker → Action-Dispatch → Connect/OBS) zurueckverfolgen. Ohne Trigger-ID kann Support nur raten.
Siehe auch: « Connect-Status: offline », « Audio reagiert nicht », « Overlay laedt nicht ».