{"record":{"id":"4c59da8225496a69","repo":"aspnetboilerplate/aspnetboilerplate","slug":"abp-message-error-is-not-implemented","errorCode":null,"errorMessage":"abp.message.error is not implemented!","messagePattern":"abp\\.message\\.error is not implemented!","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"src/Abp.Web.Resources/Abp/Framework/scripts/abp.js","lineNumber":458,"sourceCode":"      };\n\n    abp.message.info = function (message, title, options) {\n        abp.log.warn('abp.message.info is not implemented!');\n        return showMessage(message, title, options);\n    };\n\n    abp.message.success = function (message, title, options) {\n        abp.log.warn('abp.message.success is not implemented!');\n        return showMessage(message, title, options);\n    };\n\n    abp.message.warn = function (message, title, options) {\n        abp.log.warn('abp.message.warn is not implemented!');\n        return showMessage(message, title, options);\n    };\n\n    abp.message.error = function (message, title, options) {\n        abp.log.warn('abp.message.error is not implemented!');\n        return showMessage(message, title, options);\n    };\n\n    abp.message.confirm = function (message, title, callback, options) {\n        abp.log.warn('abp.message.confirm is not implemented!');\n\n        var result = confirm(message);\n        callback && callback(result);\n\n        if (!$) {\n          abp.log.warn('abp.message can not return promise since jQuery is not defined!');\n          return null;\n        }\n\n        return $.Deferred(function ($dfd) {\n          $dfd.resolve();\n        });\n      };","sourceCodeStart":440,"sourceCodeEnd":476,"githubUrl":"https://github.com/aspnetboilerplate/aspnetboilerplate/blob/2323c13a152aa0ebfb37af3830f687d7f5b53795/src/Abp.Web.Resources/Abp/Framework/scripts/abp.js#L440-L476","documentation":"abp.message.error is a default stub that only logs a warning and returns showMessage(...); the Message API (dialogs) is intentionally unimplemented in core abp.js. An adapter such as abp.sweet-alert or abp.blockUI/message integration must override it. The warning indicates no message adapter is active.","triggerScenarios":"Calling abp.message.error(message, title, options) (e.g. via abp.ajax error handling or abp.ui blocking callbacks) on a page lacking a message API adapter.","commonSituations":"Missing abp.sweet-alert.min.js + sweetalert library; adapter loaded before abp.js so its overrides are replaced; partial page loads where the adapter script was never included; upgrading abp.js without updating adapter versions.","solutions":["Include a message adapter (e.g. abp.sweet-alert.min.js with sweetalert) after abp.js.","Fix script ordering so the adapter overrides land after abp.js initializes.","Confirm the adapter assets resolve (network tab) and versions are compatible with your abp.js.","Provide a custom implementation of abp.message.error if you use a different dialog library."],"exampleFix":"// before\n<script src=\"abp.js\"></script>\nabp.message.error('Failed!'); // warn only\n// after\n<script src=\"abp.js\"></script>\n<script src=\"sweetalert.min.js\"></script>\n<script src=\"abp.sweet-alert.min.js\"></script>\nabp.message.error('Failed!'); // shows dialog","handlingStrategy":"fallback","validationCode":"if (typeof abp.message === 'undefined' || /not implemented/.test(abp.message.error.toString())) {\n  abp.message.error = function (m, t) { alert(m); return $.Deferred().resolve().promise(); };\n}","typeGuard":"function hasMessageAdapter() {\n  return typeof abp !== 'undefined' && abp.message &&\n    typeof abp.message.error === 'function' &&\n    !/not implemented/.test(abp.message.error.toString());\n}","tryCatchPattern":"try {\n  abp.message.error('Load failed');\n} catch (e) {\n  alert('Load failed');\n}","preventionTips":["Include abp.sweet-alert (or similar) plus its dialog library in the layout.","Verify adapter load order after abp.js.","Test error-dialog rendering in your E2E suite."],"tags":["javascript","dialogs","frontend","abp-framework"],"backgroundTag":"method-not-implemented","analyzedSha":"2323c13a152aa0ebfb37af3830f687d7f5b53795","analyzedAt":"2026-09-08T08:00:50.638Z","contentChangedAt":"2026-09-08T08:00:50.638Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}