Catch Errors Before Your Users Do

Real-time error monitoring, alerting, and analytics for developers

  • 5,000 errors always free
  • Lightweight, easy install
  • Connect

Rollbar is easy to install

Add the Rollbar JavaScript SDK

<script>
var _rollbarConfig = {
    accessToken: "sign up get access token",
    captureUncaught: true,
    captureUnhandledRejections: true,
    payload: {
        environment: "production"
    }
};
// Rollbar Snippet
!function(r){function o(e){if(n[e])return n[e].exports;var t=n[e]={exports:{},id:e,loaded:!1};return r[e].call(t.exports,t,t.exports,o),t.loaded=!0,t.exports}var n={};return o.m=r,o.c=n,o.p="",o(0)}([function(r,o,n){"use strict";var e=n(1),t=n(4);_rollbarConfig=_rollbarConfig||{},_rollbarConfig.rollbarJsUrl=_rollbarConfig.rollbarJsUrl||"https://cdnjs.cloudflare.com/ajax/libs/rollbar.js/2.1.3/rollbar.min.js",_rollbarConfig.async=void 0===_rollbarConfig.async||_rollbarConfig.async;var l=e.setupShim(window,_rollbarConfig),a=t(_rollbarConfig);window.rollbar=e.Rollbar,l.loadFull(window,document,!_rollbarConfig.async,_rollbarConfig,a)},function(r,o,n){"use strict";function e(r){return function(){try{return r.apply(this,arguments)}catch(r){try{console.error("[Rollbar]: Internal error",r)}catch(r){}}}}function t(r,o){this.options=r,this._rollbarOldOnError=null;var n=s++;this.shimId=function(){return n},window&&window._rollbarShims&&(window._rollbarShims[n]={handler:o,messages:[]})}function l(r,o){var n=o.globalAlias||"Rollbar";if("object"==typeof r[n])return r[n];r._rollbarShims={},r._rollbarWrappedError=null;var t=new d(o);return e(function(){return o.captureUncaught&&(t._rollbarOldOnError=r.onerror,i.captureUncaughtExceptions(r,t,!0),i.wrapGlobals(r,t,!0)),o.captureUnhandledRejections&&i.captureUnhandledRejections(r,t,!0),r[n]=t,t})()}function a(r){return e(function(){var o=this,n=Array.prototype.slice.call(arguments,0),e={shim:o,method:r,args:n,ts:new Date};window._rollbarShims[this.shimId()].messages.push(e)})}var i=n(2),s=0,c=n(3),p=function(r,o){return new t(r,o)},d=c.bind(null,p);t.prototype.loadFull=function(r,o,n,t,l){var a=function(){var o;if(void 0===r._rollbarDidLoad){o=new Error("rollbar.js did not load");for(var n,e,t,a,i=0;n=r._rollbarShims[i++];)for(n=n.messages||[];e=n.shift();)for(t=e.args||[],i=0;i<t.length;++i)if(a=t[i],"function"==typeof a){a(o);break}}"function"==typeof l&&l(o)},i=!1,s=o.createElement("script"),c=o.getElementsByTagName("script")[0],p=c.parentNode;s.crossOrigin="",s.src=t.rollbarJsUrl,n||(s.async=!0),s.onload=s.onreadystatechange=e(function(){if(!(i||this.readyState&&"loaded"!==this.readyState&&"complete"!==this.readyState)){s.onload=s.onreadystatechange=null;try{p.removeChild(s)}catch(r){}i=!0,a()}}),p.insertBefore(s,c)},t.prototype.wrap=function(r,o){try{var n;if(n="function"==typeof o?o:function(){return o||{}},"function"!=typeof r)return r;if(r._isWrap)return r;if(!r._rollbar_wrapped&&(r._rollbar_wrapped=function(){try{return r.apply(this,arguments)}catch(e){var o=e;throw"string"==typeof o&&(o=new String(o)),o._rollbarContext=n()||{},o._rollbarContext._wrappedSource=r.toString(),window._rollbarWrappedError=o,o}},r._rollbar_wrapped._isWrap=!0,r.hasOwnProperty))for(var e in r)r.hasOwnProperty(e)&&(r._rollbar_wrapped[e]=r[e]);return r._rollbar_wrapped}catch(o){return r}};for(var u="log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleUnhandledRejection".split(","),f=0;f<u.length;++f)t.prototype[u[f]]=a(u[f]);r.exports={setupShim:l,Rollbar:d}},function(r,o){"use strict";function n(r,o,n){if(r){var t;"function"==typeof o._rollbarOldOnError?t=o._rollbarOldOnError:r.onerror&&!r.onerror.belongsToShim&&(t=r.onerror,o._rollbarOldOnError=t);var l=function(){var n=Array.prototype.slice.call(arguments,0);e(r,o,t,n)};l.belongsToShim=n,r.onerror=l}}function e(r,o,n,e){r._rollbarWrappedError&&(e[4]||(e[4]=r._rollbarWrappedError),e[5]||(e[5]=r._rollbarWrappedError._rollbarContext),r._rollbarWrappedError=null),o.handleUncaughtException.apply(o,e),n&&n.apply(r,e)}function t(r,o,n){if(r){"function"==typeof r._rollbarURH&&r._rollbarURH.belongsToShim&&r.removeEventListener("unhandledrejection",r._rollbarURH);var e=function(r){var n=r.reason,e=r.promise,t=r.detail;!n&&t&&(n=t.reason,e=t.promise),o&&o.handleUnhandledRejection&&o.handleUnhandledRejection(n,e)};e.belongsToShim=n,r._rollbarURH=e,r.addEventListener("unhandledrejection",e)}}function l(r,o,n){if(r){var e,t,l="EventTarget,Window,Node,ApplicationCache,AudioTrackList,ChannelMergerNode,CryptoOperation,EventSource,FileReader,HTMLUnknownElement,IDBDatabase,IDBRequest,IDBTransaction,KeyOperation,MediaController,MessagePort,ModalWindow,Notification,SVGElementInstance,Screen,TextTrack,TextTrackCue,TextTrackList,WebSocket,WebSocketWorker,Worker,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload".split(",");for(e=0;e<l.length;++e)t=l[e],r[t]&&r[t].prototype&&a(o,r[t].prototype,n)}}function a(r,o,n){if(o.hasOwnProperty&&o.hasOwnProperty("addEventListener")){for(var e=o.addEventListener;e._rollbarOldAdd&&e.belongsToShim;)e=e._rollbarOldAdd;var t=function(o,n,t){e.call(this,o,r.wrap(n),t)};t._rollbarOldAdd=e,t.belongsToShim=n,o.addEventListener=t;for(var l=o.removeEventListener;l._rollbarOldRemove&&l.belongsToShim;)l=l._rollbarOldRemove;var a=function(r,o,n){l.call(this,r,o&&o._rollbar_wrapped||o,n)};a._rollbarOldRemove=l,a.belongsToShim=n,o.removeEventListener=a}}r.exports={captureUncaughtExceptions:n,captureUnhandledRejections:t,wrapGlobals:l}},function(r,o){"use strict";function n(r,o){this.impl=r(o,this),this.options=o,e(n.prototype)}function e(r){for(var o=function(r){return function(){var o=Array.prototype.slice.call(arguments,0);if(this.impl[r])return this.impl[r].apply(this.impl,o)}},n="log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleUnhandledRejection,_createItem,wrap,loadFull,shimId".split(","),e=0;e<n.length;e++)r[n[e]]=o(n[e])}n.prototype._swapAndProcessMessages=function(r,o){this.impl=r(this.options);for(var n,e,t;n=o.shift();)e=n.method,t=n.args,this[e]&&"function"==typeof this[e]&&this[e].apply(this,t);return this},r.exports=n},function(r,o){"use strict";r.exports=function(r){return function(o){if(!o&&!window._rollbarInitialized){r=r||{};for(var n,e,t=r.globalAlias||"Rollbar",l=window.rollbar,a=function(r){return new l(r)},i=0;n=window._rollbarShims[i++];)e||(e=n.handler),n.handler._swapAndProcessMessages(a,n.messages);window[t]=e,window._rollbarInitialized=!0}}}}]);
// End Rollbar Snippet
</script>

Send a test to your console

window.onerror("TestError: Hello World", window.location.href)

It's that easy! Supports React, Angular, Ember, and Backbone. Check out the docs for more info.

Rollbar is easy to install

Add the Rollbar PHP SDK

{
    "require": {
        "rollbar/rollbar": "~1.1"
    }
}

Configure and Test

<?php
use \Rollbar\Rollbar;
use \Rollbar\Payload\Level;
// installs global error and exception handlers
Rollbar::init(
 array(
  'access_token' => 'sign up, start trial, get access token',
  'environment' => 'production'
    )
);

Rollbar::log(Level::error(), 'TestError: Hello World!');
?>

It's that easy! Supports Laravel and Symfony. Check out the PHP docs for more info.

Rollbar is easy to install

Add Rollbar to your Gemfile

gem 'rollbar'

Configure and Test

require 'rollbar'

Rollbar.configure do |config|
  config.access_token = "sign up, start trial, get access token"
end

Rollbar.error("TestError: Hello World!")

It's that easy! Supports Rails, Rack, and Sinatra. Check out the Ruby docs for more info.

Rollbar is easy to install

Add the Rollbar Python SDK

pip install rollbar

Configure and Test

import rollbar

rollbar.init('sign up get access token')
rollbar.report_message('TestError: Hello World!')

It's that easy! Supports Django, Flask, and Bottle. Check out the Python docs for more info.

Rollbar is easy to install

Add the Rollbar Java SDK

compile('com.rollbar:rollbar-java:1.0.0')

Configure and Test

import static com.rollbar.notifier.config.ConfigBuilder.withAccessToken;
import com.rollbar.notifier.Rollbar;
Rollbar rollbar = Rollbar.init(withAccessToken("TOKEN GOES HERE"));
rollbar.log("Hello, Rollbar");

It's that easy! Check out the Java docs for more info.

Rollbar is easy to install

Add the Rollbar Android SDK

compile 'com.rollbar:rollbar-android:0.2.0'

Configure and Test

Rollbar.init(this, "sign up to get access token", "production");
Rollbar.reportMessage("TestError: Hello World!", "error");

It's that easy! Check out the Android docs for more info.

Rollbar is easy to install

Add the Rollbar JavaScript SDK

npm install --save rollbar

Configure and Test

var Rollbar = require("rollbar");
var rollbar = new Rollbar("sign up to get access token");

rollbar.log("TestError: Hello World!");

It's that easy! Check out the Node docs for more info.

Rollbar is easy to install

Add the Rollbar Cocoa SDK

pod "Rollbar", "~> 0.1.3"
#import <Rollbar/Rollbar.h>

Configure and Test

[Rollbar initWithAccessToken:@"sign up to get access token"];
[Rollbar infoWithMessage:@"TestError: Hello World!"];

It's that easy! Check out the iOS docs for more info.

Rollbar is easy to install

Add the Rollbar .NET SDK

Install-Package Rollbar

Configure and Test

static void Main()
{
    Rollbar.Init(new RollbarConfig
    {
        AccessToken = "sign up to get access token",
        Environment = "production"
    });

    Rollbar.Report("TestError: Hello World!");
}

It's that easy! Check out the .NET docs for more info.

Helping 80,000+ developers deliver better software faster

See Customer Stories

Resolve Production Errors in Minutes

Know early and often what's broken

View all errors - handled and unhandled - immediately post code deployments. Easily spot impactful issues and abnormalities in production.

Rollbar Error Monitoring

Tell signal from noise

Group similar errors automatically to reduce information overload. Customize event grouping rules any way you want.

Rollbar Error Grouping

Quickly triage production issues

Classify notifications by error type, source, frequency, and more to support and enhance your workflow. Instantly notify the right person or team in the tools you use everyday.

Rollbar Error Alerts

Find root causes quickly

Get rich contextual data beyond stack traces. Use Telemetry and request Replays to analyze and reproduce errors.

Deploy with Confidence

Without Rollbar With Rollbar
Find errors via complaints Catch errors before users do
Overloaded by noisy data Monitor, detect signals in data
Searching for clues in logs Instantly identify root cause
Resolution time: weeks Resolution time: minutes

Rollbar is Powerful and Secure

User Impact Analysis

Analyze which users and how users are affected to better prioritize impactful issues.

Query Language

Use Rollbar Query Language (RQL), SQL-like querying tool to ask any data question.

Robust API

Skip the interface and not miss a beat with a fully featured robust API.

Encryption at Rest

Get application-level encryption at rest for all your data.

Security Controls

Enhance security with SSO, 2FA, and policy-based access.

Compliance

Rollbar is fully compliant with HIPAA, ISO 27001, and more.

Rollbar Works Where You Do

Messaging

Issue Tracking

IT Alerting

Source Control

Start your free 14-day trial

  • 5,000 errors always free
  • Lightweight, easy install
  • Connect