aspnetboilerplate/aspnetboilerplate · warning
abp.message.info is not implemented!
Error message
abp.message.info is not implemented!
What it means
abp.message.info is a stub in base abp.js. The framework defines the message API but leaves the actual UI to an adapter (e.g. abp.sweet-alert.js). Calling it logs this warning, shows a native alert() via showMessage, and returns a resolved jQuery Deferred (or null without jQuery).
Solutions
- Include abp.sweet-alert.min.js (or abp.toastr variant) after abp.js.
- Verify script order so the adapter overrides the stub.
- Or override manually: abp.message.info = function (m, t, o) { return abp.libs.toastr.info(m, t, o); };
Example fix
// before
abp.message.info('Saved!'); // alert + warning logged
// after
<script src="abp.js"></script>
<script src="abp.sweet-alert.min.js"></script>
abp.message.info('Saved!'); // sweet-alert dialog Defensive patterns
Strategy: fallback
Validate before calling
if (/not implemented/.test(String(abp.message.info))) { console.warn('abp.message adapter missing — falling back to alert'); } Type guard
function hasMessageAdapter() { return typeof abp.message.info === 'function' && !/not implemented/.test(String(abp.message.info)); } Try / catch
try { abp.message.info(msg).done(cb); } catch (e) { alert(msg); cb && cb(); } Prevention
- Include abp.sweet-alert.min.js after abp.js in the base layout.
- Assert adapter installation in a smoke test.
- Keep adapter scripts adjacent to abp.js in bundle definitions to preserve order.
When it happens
Trigger: Calling abp.message.info(message, title, options) without a message adapter overriding the stub.
Common situations: Missing abp.sweet-alert.min.js include; adapter loaded before abp.js so abp.js's stub overwrites it; AJAX-layer abp.message.info fallbacks firing in apps that never included the adapter.
Related errors
- abp.message.success is not implemented!
- abp.message.warn is not implemented!
- abp.message.confirm is not implemented!
- abp.notify.warn is not implemented!
- abp.ui.block is not implemented!
AI-assisted analysis of aspnetboilerplate/aspnetboilerplate@2323c13a15 (2026-09-08).
Data as JSON: /api/errors/ec394e7c3c4316a6.
Report an issue: GitHub.
Appendix: source
Thrown at src/Abp.Web.Resources/Abp/Framework/scripts/abp.js:443
//Defines Message API, not implements it
abp.message = abp.message || {};
var showMessage = function (message, title, options) {
alert((title || '') + ' ' + message);
if (!$) {
abp.log.warn('abp.message can not return promise since jQuery is not defined!');
return null;
}
return $.Deferred(function ($dfd) {
$dfd.resolve();
});
};
abp.message.info = function (message, title, options) {
abp.log.warn('abp.message.info is not implemented!');
return showMessage(message, title, options);
};
abp.message.success = function (message, title, options) {
abp.log.warn('abp.message.success is not implemented!');
return showMessage(message, title, options);
};
abp.message.warn = function (message, title, options) {
abp.log.warn('abp.message.warn is not implemented!');
return showMessage(message, title, options);
};
abp.message.error = function (message, title, options) {
abp.log.warn('abp.message.error is not implemented!');
return showMessage(message, title, options);
};
View on GitHub (pinned to 2323c13a15)