diff --git a/lib/smstools-handler/failed.js b/lib/smstools-handler/failed.js
index 8e2ddf3..686aa3f 100644
--- a/lib/smstools-handler/failed.js
+++ b/lib/smstools-handler/failed.js
@@ -1,6 +1,9 @@
 const fs = require('fs');
+const path = require('path');
+const moment = require('moment');
 const logger = require('komodo-sdk/logger');
 const mailparser = require('../mailparser-wrapper');
+const config = require('../../config');
 
 const eventType = 'FAILED';
 
@@ -30,8 +33,12 @@ module.exports = async (msgFilename) => {
     const failed = parsedMsg.headers.get('failed');
     const { text } = parsedMsg;
 
-    const originalTsMatched = msgFilename.match(/komodo\.(\d+)_(d+)/);
+    const originalTsMatched = msgFilename.match(/komodo\.((\d+)_(\d+))/);
+    const originalTs = originalTsMatched && originalTsMatched[1];
+    const originalTsParsed = originalTs && moment(originalTs, 'YYYYMMDD_HHmmss');
 
+    const deltaTimeMs = originalTsParsed && Number(new Date() - originalTsParsed);
+    const retry = !!(deltaTimeMs && (deltaTimeMs < (15 * 60 * 1000)));
 
     logger.verbose('Sent failed detected', {
         eventType,
@@ -43,6 +50,38 @@ module.exports = async (msgFilename) => {
         failReason,
         failed,
         text,
-        originalTsMatched,
+        originalTsParsed,
+        deltaTimeMs,
+        retry,
     });
+
+    if (!retry) return;
+
+    try {
+        await fs.promises.unlink(msgFilename);
+    } catch (e) {
+        logger.warn(`Can not unlink failed message. ${e.message || e.toString()}`, {
+            eventType,
+            msgFile: msgFilename,
+        });
+        return;
+    }
+
+    const newMessageContent = `
+To: ${to}
+
+${text}
+    `.trim();
+
+    const outboxDir = config.outbox_dir || '/var/spool/sms/outgoing';
+    const newFileName = `${outboxDir}/${path.basename(msgFilename)}`;
+
+    try {
+        fs.promises.writeFile(newFileName, newMessageContent, { mode: 0o660 });
+    } catch (e) {
+        logger.warn(`Can not create retry file. ${e.message || e.toString()}`, {
+            eventType,
+            msgFile: msgFilename,
+        });
+    }
 };