# SMPP-command_status-Fehlercodes

> command_status ist das 4-Byte-Header-Feld, das das Ergebnis einer Operation meldet. In einem Request ist es 0 (ESME_ROK); in einer Response trägt es einen ESME_R*-Fehlercode. 0x00000000 ist Erfolg; Werte ungleich null zeigen konkrete Störungen an, etwa ein ungültiges Passwort, Drosselung oder eine volle Nachrichtenwarteschlange.

- Kanonische URL: https://www.broadnet.me/de/reference/smpp-command-status-errors
- Sprache: de
- Zuletzt aktualisiert: 2026-07-18
- Herausgeber: BroadNet (https://www.broadnet.me)

Das SMPP-Feld command_status und der ESME_R*-Fehlerbereich: was die gängigen Codes bedeuten (ESME_RINVPASWD, ESME_RTHROTTLED, ESME_RMSGQFUL …) und wie man auf jeden reagiert.

## Wie command_status funktioniert

Jede Response-PDU spiegelt die sequence_number des Requests wider und setzt command_status auf das Ergebnis. ESME_ROK (0) bedeutet Erfolg. Jeder andere Wert ist ein Fehler, dessen Zahlencode auf eine benannte ESME_R*-Konstante in der Spezifikation abbildet. Codes 0x00000100–0x000003FF sind für SMPP-Erweiterungen und 0x00000400–0x000004FF für SMSC-herstellerspezifische Fehler reserviert, behandeln Sie unbekannte Codes daher stets kulant.

## Die Codes, die Sie tatsächlich sehen werden

Eine kleine Gruppe von Codes deckt den größten Teil der praktischen Behandlung ab. Gruppieren Sie sie nach Reaktion: erneut versuchen nach Backoff (Drosselung, Warteschlange voll, Systemfehler), Request korrigieren (ungültige Adresse, TON/NPI, data_coding, Nachrichtenlänge) und fatal für die Sitzung (ungültiges Passwort oder System-ID, Bind-Fehler).

*Häufig auftretende command_status-Codes*

| Wert | Name | Bedeutung | Typische Reaktion |
|---|---|---|---|
| 0x00000000 | ESME_ROK | Kein Fehler | Erfolgreich |
| 0x00000001 | ESME_RINVMSGLEN | Ungültige Nachrichtenlänge | Payload / Segment korrigieren |
| 0x00000005 | ESME_RALYBND | Bind bereits aktiv | Nicht erneut binden; Sitzung wiederverwenden |
| 0x0000000A | ESME_RINVSRCADR | Ungültige Quelladresse | Absender / TON / NPI korrigieren |
| 0x0000000B | ESME_RINVDSTADR | Ungültige Zieladresse | MSISDN des Empfängers korrigieren |
| 0x0000000D | ESME_RBINDFAIL | Bind fehlgeschlagen | Backoff, Zugangsdaten prüfen |
| 0x0000000E | ESME_RINVPASWD | Ungültiges Passwort | Schwerwiegender Fehler – Zugangsdaten korrigieren |
| 0x0000000F | ESME_RINVSYSID | Ungültige System-ID | Schwerwiegender Fehler – Zugangsdaten korrigieren |
| 0x00000014 | ESME_RMSGQFUL | Nachrichtenwarteschlange voll | Backoff und erneut versuchen |
| 0x00000043 | ESME_RINVESMCLASS | Ungültiges esm_class | esm_class-Bits korrigieren |
| 0x00000058 | ESME_RTHROTTLED | Drosselung – Rate überschritten | Langsamer senden, Backoff mit Jitter |
| 0x00000062 | ESME_RINVEXPIRY | Ungültiges validity_period | Gültigkeitsformat korrigieren |
| 0x000000FE | ESME_RDELIVERYFAILURE | Zustellungsfehler (data_sm) | Gemäß Richtlinie prüfen/wiederholen |
| 0x000000FF | ESME_RUNKNOWNERR | Unbekannter Fehler | Protokollieren, alarmieren, vorsichtig erneut versuchen |

## Reservierte und Hersteller-Bereiche

Nicht jeder Code, den Sie erhalten, steht in der Kernspezifikation. Die Spezifikation reserviert 0x00000100–0x000003FF für künftige SMPP-Nutzung und 0x00000400–0x000004FF für SMSC-spezifische Codes, sodass Ihr Anbieter einen Wert zurückgeben kann, den nur seine Dokumentation erklärt. Bilden Sie anbieterspezifische Codes auf eine normalisierte interne Taxonomie ab (ungültige Nummer, gesperrt, gedrosselt, temporärer Fehler), damit die routenübergreifende Qualität vergleichbar bleibt.

*command_status-reservierte Bereiche*

| Bereich | Reserviert für |
|---|---|
| 0x00000100 – 0x000003FF | SMPP-Protokollerweiterungen |
| 0x00000400 – 0x000004FF | SMSC-herstellerspezifische Fehler |
| 0x00000500 – 0xFFFFFFFF | Reserviert |

## Häufige Fragen

### Was bedeutet ESME_RTHROTTLED und wie sollte ich damit umgehen?

ESME_RTHROTTLED (0x00000058) bedeutet, dass Sie Ihre zulässige Nachrichtenrate überschritten haben. Erhöhen Sie die Last nicht weiter, pausieren Sie Submits und warten Sie mit Backoff und Jitter, bevor Sie erneut senden. Bei gleicher Rate weiterzumachen riskiert, dass der Anbieter den Bind abbaut.

### Ist ESME_RINVPASWD behebbar?

Nein, nicht zur Laufzeit. ESME_RINVPASWD (0x0000000E) weist auf falsche Zugangsdaten hin. Loopen Sie den Bind nicht heiß; korrigieren Sie die system_id/password-Konfiguration und verbinden Sie erneut. Wiederholt fehlgeschlagene Binds können eine IP-Sperre auslösen.

### Was ist der Unterschied zwischen ESME_RMSGQFUL und ESME_RTHROTTLED?

ESME_RMSGQFUL (0x00000014) bedeutet, dass die Warteschlange des SMSC vorübergehend voll ist; ESME_RTHROTTLED (0x00000058) bedeutet, dass Sie Ihr Ratenlimit überschritten haben. Beide erfordern Backoff, aber Drosselung betrifft Ihre TPS, während „Warteschlange voll" die Kapazität des SMSC betrifft.

### Ich habe einen Fehlercode erhalten, der nicht in der Spezifikation steht — warum?

SMPP reserviert 0x400–0x4FF für SMSC-herstellerspezifische Codes, sodass Ihr Anbieter einen nur von ihm dokumentierten Wert zurückgeben kann. Ziehen Sie die Fehlertabelle des Anbieters heran und bilden Sie ihn auf Ihre interne Taxonomie ab.

## Quellen

- [SMPP v3.4 specification — §5.1.3 command_status](https://smpp.org/SMPP_v3_4_Issue1_2.pdf)
- [SMPP v5.0 specification](https://smpp.org/SMPP_v5.pdf)

## Verwandte Seiten

- [SMPP-Fehlercode-Suche (kostenloses Tool)](https://www.broadnet.me/de/tools/smpp-error-codes)
- [SMPP PDU Anatomie](https://www.broadnet.me/de/reference/smpp-pdu-anatomy)
- [SMPP enquire_link & Throttling](https://www.broadnet.me/de/reference/smpp-enquire-link-throttling)
- [Best Practices für die SMPP-Integration](https://www.broadnet.me/de/reference/smpp-integration-best-practices)
- [SMPP-Integrations-Checkliste (Leitfaden)](https://www.broadnet.me/de/guides/smpp-integration-checklist)
