{"id":1000,"date":"2026-09-22T09:10:49","date_gmt":"2026-09-22T09:10:49","guid":{"rendered":"https:\/\/smppcenter.com\/kb\/?p=1000"},"modified":"2026-09-22T09:10:52","modified_gmt":"2026-09-22T09:10:52","slug":"repush-failed-messages-different-route","status":"publish","type":"post","link":"https:\/\/smppcenter.com\/kb\/repush-failed-messages-different-route\/","title":{"rendered":"How to Repush Failed Messages Through a Different Route"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">When a vendor has an outage or starts rejecting a template, you&#8217;re left with a batch of failed messages your clients still need delivered. <strong>Repush<\/strong> resends them over a different route. You can repush one message from the Message Log, or run a bulk repush filtered by user, error code and time window.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Option A: Repush a single message<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open <strong>Message Log<\/strong> and find the failed message.<\/li>\n\n\n\n<li>In the <strong>Status<\/strong> tab, click <strong>Repush<\/strong>. The button only appears on failed messages.<\/li>\n\n\n\n<li>In the <strong>Single Message Re-push<\/strong> window, choose a route under <strong>Select Route for Re-push<\/strong>.<\/li>\n\n\n\n<li>Click <strong>Send<\/strong>.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Use this for one-off client complaints (&#8220;my OTP to this number failed&#8221;).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Option B: Bulk repush<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Open the <strong>Re-push<\/strong> menu \u2192 <strong>Repush Messages<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Filter<\/th><th>Notes<\/th><\/tr><\/thead><tbody><tr><td><strong>Product<\/strong><\/td><td>SMS is selected by default<\/td><\/tr><tr><td><strong>Username<\/strong><\/td><td>The client whose messages you&#8217;re repushing<\/td><\/tr><tr><td><strong>Date and time range<\/strong><\/td><td><strong>Today only.<\/strong> Defaults to 12:00 AM\u201311:59 PM; narrow it to the outage window<\/td><\/tr><tr><td><strong>Global Error Code<\/strong><\/td><td>Success codes can&#8217;t be selected<\/td><\/tr><tr><td><strong>Vendor Error Code<\/strong><\/td><td>Optional; use it to target one vendor&#8217;s specific failure<\/td><\/tr><tr><td><strong>Connects<\/strong><\/td><td>Limit to the connect that failed<\/td><\/tr><tr><td><strong>Transaction ID<\/strong><\/td><td>Optional<\/td><\/tr><tr><td><strong>Sender ID<\/strong><\/td><td>SMS only, optional<\/td><\/tr><tr><td><strong>Repush Route<\/strong><\/td><td><strong>Required<\/strong>: the route that will carry the resend<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Repush always runs in two steps:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Get Summary:<\/strong> shows how many messages match your filters. Nothing is sent yet.<\/li>\n\n\n\n<li><strong>Repush:<\/strong> runs the job. It runs in the background, and progress appears in <strong>Repush History<\/strong> (status, progress counts, filters used, route, request and completion times).<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Before you run a large repush<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Check the repush route has a working template.<\/strong> For India DLT traffic, the new route must carry the same PE ID\/template, or every message will fail again.<\/li>\n\n\n\n<li><strong>Time matters.<\/strong> For OTPs and time-sensitive alerts, a resend hours later does more harm than good. Filter those sender IDs out, or leave them.<\/li>\n\n\n\n<li><strong>Run a small batch first.<\/strong> Repush one username for a narrow time window, then check Message Log and the user&#8217;s credit before repushing everything.<\/li>\n\n\n\n<li><strong>Fix the cause first.<\/strong> If the failure was caused by your own mapping or routing, fix that before repushing, or the retry will fail the same way.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Error messages<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>&#8220;SMS repush URL is not configured&#8221;<\/strong> or <strong>&#8220;repush not enabled&#8221;:<\/strong> the repush service isn&#8217;t enabled on your installation. Contact SMPPCenter support.<\/li>\n\n\n\n<li><strong>&#8220;Success error code cannot be used for repush&#8221;:<\/strong> you selected a delivered\/success code. Choose a failure code.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Repush vs automatic retry<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Repush is a manual step for recovering after an incident. For automatic failover while traffic is flowing, use route-level retries (the <strong>Routes Multiple Retry<\/strong> plugin allows up to 4 retries across different routes), so fewer messages need repushing in the first place.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Related articles<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/smppcenter.com\/kb\/repush-dlr-delivery-reports-clients\/\">How to Repush Delivery Reports (DLRs) to Your Clients<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/smppcenter.com\/kb\/failed-messages-get-retried-smpp-client\/\">Do the Failed Messages Get Retried in SMPP Client?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/smppcenter.com\/kb\/map-vendor-error-codes-global-error-codes\/\">How to Map Vendor Error Codes to Global Error Codes<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Resend failed messages, singly or in bulk, over a different route after a vendor outage, with a preview step and audit history.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[316],"tags":[317,318,319,320,321],"class_list":["post-1000","post","type-post","status-publish","format-standard","hentry","category-routes-failover","tag-message-log","tag-repush","tag-resend-failed-sms","tag-route-failover","tag-vendor-outage"],"_links":{"self":[{"href":"https:\/\/smppcenter.com\/kb\/wp-json\/wp\/v2\/posts\/1000","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/smppcenter.com\/kb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/smppcenter.com\/kb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/smppcenter.com\/kb\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/smppcenter.com\/kb\/wp-json\/wp\/v2\/comments?post=1000"}],"version-history":[{"count":0,"href":"https:\/\/smppcenter.com\/kb\/wp-json\/wp\/v2\/posts\/1000\/revisions"}],"wp:attachment":[{"href":"https:\/\/smppcenter.com\/kb\/wp-json\/wp\/v2\/media?parent=1000"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/smppcenter.com\/kb\/wp-json\/wp\/v2\/categories?post=1000"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/smppcenter.com\/kb\/wp-json\/wp\/v2\/tags?post=1000"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}