<!DOCTYPE html><html lang="en"> <head><script nonce="mDmU4cbt0iXImXZ07ByWTnN9mxGPNzYH">
      // Prevent SecurityError from third-party scripts (e.g. imtgo_device_info_WS)
      // that attempt insecure ws:// WebSocket connections on HTTPS pages.
      (function () {
        if (location.protocol !== 'https:') return;
        var NativeWebSocket = window.WebSocket;
        if (!NativeWebSocket) return;
        // Guard against re-execution (e.g. Google Translate re-running inline
        // scripts after DOM manipulation). Without this, each execution wraps
        // the already-patched WebSocket, building infinite recursion.
        if (NativeWebSocket.__sentryPatched) return;

        function normalizeWebSocketUrl(url) {
          if (typeof url === 'string') return url;
          if (url && typeof url.href === 'string') return url.href;
          return '';
        }

        function isInsecureWebSocketUrl(url) {
          var normalizedUrl = normalizeWebSocketUrl(url);
          if (!normalizedUrl) return false;
          try {
            return new URL(normalizedUrl, location.href).protocol === 'ws:';
          } catch (e) {
            return false;
          }
        }

        function PatchedWebSocket(url, protocols) {
          if (!(this instanceof PatchedWebSocket)) {
            return arguments.length === 1
              ? new PatchedWebSocket(url)
              : new PatchedWebSocket(url, protocols);
          }

          if (isInsecureWebSocketUrl(url)) {
            try {
              return arguments.length === 1
                ? new NativeWebSocket(url)
                : new NativeWebSocket(url, protocols);
            } catch (e) {
              if (e.name === 'SecurityError') {
                var stub = Object.create(NativeWebSocket.prototype);
                stub.readyState = NativeWebSocket.CLOSED;
                stub.bufferedAmount = 0;
                stub.extensions = '';
                stub.protocol = '';
                stub.url = normalizeWebSocketUrl(url);
                stub.binaryType = 'blob';
                stub.send = function () {};
                stub.close = function () {};
                stub.onopen = null;
                stub.onclose = null;
                stub.onerror = null;
                stub.onmessage = null;
                stub.addEventListener = function () {};
                stub.removeEventListener = function () {};
                stub.dispatchEvent = function () { return true; };
                return stub;
              }
              throw e;
            }
          }

          return arguments.length === 1
            ? new NativeWebSocket(url)
            : new NativeWebSocket(url, protocols);
        }

        PatchedWebSocket.prototype = NativeWebSocket.prototype;
        PatchedWebSocket.CONNECTING = NativeWebSocket.CONNECTING;
        PatchedWebSocket.OPEN = NativeWebSocket.OPEN;
        PatchedWebSocket.CLOSING = NativeWebSocket.CLOSING;
        PatchedWebSocket.CLOSED = NativeWebSocket.CLOSED;
        PatchedWebSocket.__sentryPatched = true;
        window.WebSocket = PatchedWebSocket;
      })();
    </script><!-- Primary Meta Tags --><title>Terms of Service 3.0.0 (February 12, 2024) | Sentry</title><meta name="title" content="Terms of Service 3.0.0 (February 12, 2024)"><meta name="description" content="Terms of Service for Sentry"><meta name="image" content="https://sentry.io/astro-assets/og-default.jpg"><meta name="robots" content="index, follow"><meta name="author" content="Sentry"><!-- Canonical URL --><link rel="canonical" href="https://sentry.io/terms/"><!-- Favicon --><link rel="icon" href="/favicon.ico" sizes="any"><!-- Open Graph / Facebook --><meta property="og:type" content="website"><meta property="og:url" content="https://sentry.io/terms/"><meta property="og:title" content="Terms of Service 3.0.0 (February 12, 2024)"><meta property="og:description" content="Terms of Service for Sentry"><meta property="og:image" content="https://sentry.io/astro-assets/og-default.jpg"><meta property="og:site_name" content="Sentry"><meta property="og:locale" content="en_US"><!-- Twitter --><meta property="twitter:card" content="summary_large_image"><meta property="twitter:url" content="https://sentry.io/terms/"><meta property="twitter:title" content="Terms of Service 3.0.0 (February 12, 2024)"><meta property="twitter:description" content="Terms of Service for Sentry"><meta property="twitter:image" content="https://sentry.io/astro-assets/og-default.jpg"><meta name="twitter:site" content="@sentry"><meta name="twitter:creator" content="@sentry"><!-- Additional Open Graph tags for articles --><!-- Additional Meta Tags --><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta charset="UTF-8"><!-- <link rel="apple-touch-icon" href="/apple-touch-icon.png" /> --><link rel="sitemap" type="application/xml" href="https://sentry.io/sitemap-index.xml"><meta name="theme-color" content="#6A5FC1"><!-- Self-Hosted Font Preloading for Optimal LCP --><link rel="preload" href="/astro-assets/fonts/rubik-latin-regular.woff" as="font" type="font/woff" crossorigin><link rel="preload" href="/astro-assets/fonts/rubik-latin-italic.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/astro-assets/fonts/dammitsansv0.3-bold.otf" as="font" type="font/otf" crossorigin><!-- Structured Data for WebPage --><script nonce="mDmU4cbt0iXImXZ07ByWTnN9mxGPNzYH" type="application/ld+json">{"@context":"https://schema.org","@type":"WebPage","name":"Terms of Service 3.0.0 (February 12, 2024)","description":"Terms of Service for Sentry","url":"https://sentry.io/terms/","publisher":{"@type":"Organization","name":"Sentry"}}</script><script nonce="mDmU4cbt0iXImXZ07ByWTnN9mxGPNzYH" defer data-domain="sentry.io,rollup.sentry.io" data-api="https://plausible.io/api/event" src="https://plausible.io/js/script.tagged-events.js"></script><!-- Reload SDK Setup --><script nonce="mDmU4cbt0iXImXZ07ByWTnN9mxGPNzYH" type="text/javascript" id="reload-setup">
!function(e){function n(r){if(t[r])return t[r].exports;var o=t[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}var t={};return n.m=e,n.c=t,n.p="",n(0)}([function(e,n,t){"use strict";var r=t(1),o="",i=2e3,c=Object.assign||function(e){if(void 0===e||null===e)throw new TypeError("Cannot convert undefined or null to object");for(var n=Object(e),t=1;t<arguments.length;t++){var r=arguments[t];if(void 0!==r&&null!==r)for(var o in r)r.hasOwnProperty(o)&&(n[o]=r[o])}return n},a=function(){if(["127.0.0.1","0.0.0.0","localhost"].indexOf(location.hostname)>=0)return location.host;var e=location.hostname.split(".");e.length>2&&e.shift();var n=e.join(".");return n},u=function(){return console.warn("getAnonId is deprecated"),""},f=function(){try{var e=new URLSearchParams(window.location.search),n=e.get("original_referrer");return n||document.referrer}catch(e){console.error(e)}return document.referrer},s=function(){var e={url:window.location.href,path:window.location.pathname,referrer:f(),document_referrer:document.referrer,title:document.title,sent_at:Date.now().toString()};for(var n in e)e[n]=e[n].slice(0,i);return e},d=function(e,n){var t=new XMLHttpRequest;t.open("POST",e),t.send(JSON.stringify(n))},l=null,p=function(){l||(l=setTimeout(function(){for(var e in v){if(!v.hasOwnProperty(e))return;d(e,v[e]),v[e]=[]}l=null},1e3))},v={},m=function(e,n){v[e]||(v[e]=[]),v[e].push(n),p()},w=function(e,n,t){var o=(0,r.get)("gsID"),i={user_id:o};c(i,s(),n);var a=t?m:d;a(window.ra.endpoint+e,i)},g=function(e,n){var t={event_name:e};c(t,n),w("/event/",t)},h=function(e){w("/page/",e)},x=function(e){(0,r.set)("gsID",e,{domain:a()})},C=function(e,n,t){w("/metric/",{metric_name:e,value:n,tags:t},!0)};window.ra={page:h,event:g,endpoint:o,identify:x,getAnonId:u,metric:C}},function(e,n,t){var r,o;!function(i){var c;if(r=i,o="function"==typeof r?r.call(n,t,n,e):r,!(void 0!==o&&(e.exports=o)),c=!0,e.exports=i(),c=!0,!c){var a=window.Cookies,u=window.Cookies=i();u.noConflict=function(){return window.Cookies=a,u}}}(function(){function e(){for(var e=0,n={};e<arguments.length;e++){var t=arguments[e];for(var r in t)n[r]=t[r]}return n}function n(e){return e.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}function t(r){function o(){}function i(n,t,i){if("undefined"!=typeof document){i=e({path:"/"},o.defaults,i),"number"==typeof i.expires&&(i.expires=new Date(1*new Date+864e5*i.expires)),i.expires=i.expires?i.expires.toUTCString():"";try{var c=JSON.stringify(t);/^[\{\[]/.test(c)&&(t=c)}catch(e){}t=r.write?r.write(t,n):encodeURIComponent(String(t)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),n=encodeURIComponent(String(n)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,encodeURIComponent);var a="";for(var u in i)i[u]&&(a+="; "+u,i[u]!==!0&&(a+="="+i[u].split(";")[0]));return document.cookie=n+"="+t+a}}function c(e,t){if("undefined"!=typeof document){for(var o={},i=document.cookie?document.cookie.split("; "):[],c=0;c<i.length;c++){var a=i[c].split("="),u=a.slice(1).join("=");t||'"'!==u.charAt(0)||(u=u.slice(1,-1));try{var f=n(a[0]);if(u=(r.read||r)(u,f)||n(u),t)try{u=JSON.parse(u)}catch(e){}if(o[f]=u,e===f)break}catch(e){}}return e?o[e]:o}}return o.set=i,o.get=function(e){return c(e,!1)},o.getJSON=function(e){return c(e,!0)},o.remove=function(n,t){i(n,"",e(t,{expires:-1}))},o.defaults={},o.withConverter=t,o}return t(function(){})})}]);
window.ra.endpoint = 'https://reload.getsentry.net';
</script> <!-- Page View Tracking --><script nonce="mDmU4cbt0iXImXZ07ByWTnN9mxGPNzYH" type="text/javascript" id="reload-page-view">
(function(window){
  if(window.ra) {
    window.ra.page();
  }
})(window);
</script> <!-- User Identification --><script nonce="mDmU4cbt0iXImXZ07ByWTnN9mxGPNzYH" type="text/javascript" id="reload-identify-sentry-user">
(function(window){
  if(window.ra && window.Sentry){
    try {
      const user = window.Sentry.getCurrentHub?.()?.getScope?.()?.getUser?.();
      if(user?.id) {
        window.ra.identify(user.id);
      }
    } catch(e) {
      // Sentry SDK not available or user not set
    }
  }
})(window);
</script><script nonce="mDmU4cbt0iXImXZ07ByWTnN9mxGPNzYH">
      // When a new deployment replaces content-hashed JS chunks, users with
      // cached pages will fail to dynamically import the old chunk URLs.
      // Detect this and force a hard reload so the browser fetches fresh HTML
      // with the correct asset hashes. Fall back to a URL flag when
      // sessionStorage is unavailable (e.g. Android WebView).
      var staleChunkReloadFlag = 'stale_chunk_reloaded';
      var staleChunkReloadQueryValue = '1';

      function hasStaleChunkReloadQueryFlag() {
        return new RegExp(
          '(?:^|&)' + staleChunkReloadFlag + '=' + staleChunkReloadQueryValue + '(?:&|$)'
        ).test(window.location.search.slice(1));
      }

      function addStaleChunkReloadQueryFlag(url) {
        var hashIndex = url.indexOf('#');
        var hash = hashIndex === -1 ? '' : url.slice(hashIndex);
        var baseUrl = hashIndex === -1 ? url : url.slice(0, hashIndex);
        var separator = baseUrl.indexOf('?') === -1 ? '?' : '&';

        return baseUrl + separator + staleChunkReloadFlag + '=' + staleChunkReloadQueryValue + hash;
      }

      function clearStaleChunkReloadQueryFlag() {
        if (!hasStaleChunkReloadQueryFlag()) {
          return;
        }

        try {
          var queryParts = window.location.search.slice(1).split('&').filter(function(part) {
            return part && part.split('=')[0] !== staleChunkReloadFlag;
          });
          var cleanSearch = queryParts.length ? '?' + queryParts.join('&') : '';
          var cleanUrl = window.location.pathname + cleanSearch + window.location.hash;
          window.history.replaceState(window.history.state, '', cleanUrl);
        } catch (e) {
          // Ignore — URL/history APIs are unavailable.
        }
      }

      function reloadWithStaleChunkGuard() {
        try {
          if (sessionStorage.getItem(staleChunkReloadFlag)) {
            return false;
          }

          sessionStorage.setItem(staleChunkReloadFlag, staleChunkReloadQueryValue);
          window.location.reload();
          return true;
        } catch (e) {
          if (hasStaleChunkReloadQueryFlag()) {
            return false;
          }

          window.location.replace(addStaleChunkReloadQueryFlag(window.location.href));
          return true;
        }
      }

      function isModuleImportError(msg) {
        return msg.indexOf('error loading dynamically imported module') !== -1 ||
          msg.indexOf('Failed to fetch dynamically imported module') !== -1 ||
          msg.indexOf('Importing a module script failed') !== -1;
      }

      window.addEventListener('error', function(event) {
        if (isModuleImportError(event.message || '')) {
          reloadWithStaleChunkGuard();
        }
      });
      window.addEventListener('unhandledrejection', function(event) {
        var reason = event.reason;
        var msg = (reason && (reason.message || String(reason))) || '';
        if (isModuleImportError(msg)) {
          reloadWithStaleChunkGuard();
          event.preventDefault();
        }
      });
      window.addEventListener('load', function() {
        try {
          sessionStorage.removeItem(staleChunkReloadFlag);
        } catch (e) {
          // Ignore — storage is unavailable (e.g. Android WebView).
        }
        clearStaleChunkReloadQueryFlag();
      });
    </script><script nonce="mDmU4cbt0iXImXZ07ByWTnN9mxGPNzYH">
      // Resolve OAuth signup destinations at CLICK TIME from the live URL so a
      // click that happens before PatchOAuthLinks / React hydration runs can't
      // drop `next`/attribution and land new Google signups on /welcome.
      // Import-free on purpose: a failed module chunk must not skip this. Keep
      // getSignupExtraParams in sync with src/lib/signup.ts.
      (function () {
        var usOnlyAdParams = { wbraid: true, gbraid: true, gclid: true };

        function sanitizeUsOnlyAdParamsFromUrl(rawUrl) {
          try {
            var url = new URL(rawUrl);
            Array.from(url.searchParams.keys()).forEach(function (key) {
              if (usOnlyAdParams[key.toLowerCase()]) {
                url.searchParams.delete(key);
              }
            });
            return url.toString();
          } catch (e) {
            return rawUrl;
          }
        }

        function hasUsOnlyAdParamsInUrl(rawUrl) {
          try {
            var url = new URL(rawUrl);
            var keys = Array.from(url.searchParams.keys());
            return keys.some(function (key) {
              return !!usOnlyAdParams[key.toLowerCase()];
            });
          } catch (e) {
            return false;
          }
        }

        function getApprovedSignupHref(rawHref, fallbackHref) {
          if (!rawHref || !hasUsOnlyAdParamsInUrl(rawHref)) {
            return Promise.resolve(sanitizeUsOnlyAdParamsFromUrl(fallbackHref || rawHref || window.location.href));
          }

          var controller = new AbortController();
          var timeout = setTimeout(function () { controller.abort(); }, 3000);

          return fetch('https://www-rewrite.sentry.dev/api/signup-attribution/', {
            method: 'POST',
            credentials: 'omit',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify({ href: rawHref }),
            signal: controller.signal
          }).then(function (response) {
            clearTimeout(timeout);
            if (!response.ok) {
              return sanitizeUsOnlyAdParamsFromUrl(fallbackHref || rawHref);
            }
            return response.json().then(function (payload) {
              return payload && typeof payload.href === 'string'
                ? payload.href
                : sanitizeUsOnlyAdParamsFromUrl(fallbackHref || rawHref);
            });
          }).catch(function () {
            clearTimeout(timeout);
            return sanitizeUsOnlyAdParamsFromUrl(fallbackHref || rawHref);
          });
        }

        function getSignupExtraParams(search, href) {
          var sp = new URLSearchParams(search);
          var p = {};
          if (sp.get('next')) p.next = sp.get('next');
          if (sp.get('project_platform')) p.project_platform = sp.get('project_platform');
          p.href = href || sanitizeUsOnlyAdParamsFromUrl(window.location.href);
          if (window.document.referrer) p.referrer_url = window.document.referrer;
          p.referrer = sp.get('referrer') || window.document.referrer || 'web-signup';
          if (sp.get('original_referrer')) p.original_referrer = sp.get('original_referrer');
          return p;
        }
        if (hasUsOnlyAdParamsInUrl(window.location.href) && !window.__approvedSignupHrefPromise) {
          window.__approvedSignupHrefPromise = getApprovedSignupHref(
            window.location.href,
            sanitizeUsOnlyAdParamsFromUrl(window.location.href)
          ).then(function (href) {
            window.__approvedSignupHref = href;
            return href;
          });
        }
        var navigating = false;
        document.addEventListener('click', function (e) {
          if (navigating) return;
          if (e.defaultPrevented || e.button !== 0) return;
          if (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) return;
          var a = e.target && e.target.closest
            ? e.target.closest('a[href*="/identity/login/"]') : null;
          if (!a || (a.target && a.target !== '_self')) return;
          var dest;
          try { dest = new URL(a.href); } catch (err) { return; }
          var existingHref = dest.searchParams.get('href');
          var currentHrefHasUsOnlyAdParams = hasUsOnlyAdParamsInUrl(window.location.href);
          var rawHref = currentHrefHasUsOnlyAdParams
            ? window.location.href
            : existingHref;
          var fallbackHref = sanitizeUsOnlyAdParamsFromUrl(
            rawHref || existingHref || window.location.href
          );

          e.preventDefault();
          navigating = true;
          var searchSnapshot = window.location.search;

          var approval = currentHrefHasUsOnlyAdParams && window.__approvedSignupHrefPromise
            ? window.__approvedSignupHrefPromise
            : getApprovedSignupHref(rawHref, fallbackHref);

          approval.then(function (approvedHref) {
            dest.search = '';
            var params = getSignupExtraParams(searchSnapshot, approvedHref);
            for (var k in params) {
              if (Object.prototype.hasOwnProperty.call(params, k)) {
                dest.searchParams.set(k, params[k]);
              }
            }
            window.location.assign(dest.toString());
            setTimeout(function () { navigating = false; }, 5000);
          }).catch(function () {
            navigating = false;
            try { window.location.assign(a.href); } catch (e) {}
          });
        }, true);
      })();
    </script><link rel="stylesheet" href="/_astro/Layout.CEowuY7Z.css"><style>.flex-grid-cell[data-astro-cid-nmskivc4]{box-sizing:border-box;width:var(--base-width)}@media(min-width:576px){.flex-grid-cell[data-astro-cid-nmskivc4]{width:var(--sm-width, var(--base-width))!important}}@media(min-width:768px){.flex-grid-cell[data-astro-cid-nmskivc4]{width:var(--md-width, var(--sm-width, var(--base-width)))!important}}@media(min-width:992px){.flex-grid-cell[data-astro-cid-nmskivc4]{width:var(--lg-width, var(--md-width, var(--sm-width, var(--base-width))))!important}}@media(min-width:1152px){.flex-grid-cell[data-astro-cid-nmskivc4]{width:var(--xl-width, var(--lg-width, var(--md-width, var(--sm-width, var(--base-width)))))!important}}
</style><link rel="stylesheet" href="/_astro/PolicyPageLayout.CdYS4oU3.css"><script nonce="mDmU4cbt0iXImXZ07ByWTnN9mxGPNzYH" type="module" src="/_astro/page.uOggGnet.js"></script></head> <body class="transition-colors duration-200 bg-white"> <a href="#main-content" class="sr-only focus:not-sr-only focus:absolute focus:top-4 focus:left-4 focus:z-50 focus:px-4 focus:py-2 focus:bg-blue-600 focus:text-white focus:rounded">
Skip to main content
</a> <header class="sticky top-0 z-50 transition-all duration-200 bg-white" role="banner" aria-label="Site navigation" data-astro-cid-lyo5ukun> <div class="container" data-astro-cid-bdd4tvdo style="--xs: 0%;--sm: 576px;--md: 768px;--lg: 992px;--xl: 1152px;">  <nav class="flex flex-row flex-wrap items-center justify-center w-full py-4 xl:flex-nowrap text-[#362d59]" aria-label="main" role="navigation" data-astro-cid-lyo5ukun> <a href="https://sentry.io/welcome/" aria-label="Welcome Page" id="sentry-logo" class="flex items-center flex-shrink-0 mr-auto text-[#362d59] focus:outline-none focus:fill-pink-500" data-astro-cid-lyo5ukun> <svg xmlns="https://www.w3.org/2000/svg" viewBox="0 0 200 44" aria-hidden="true" class="block h-8"> <path fill="currentColor" d="M124.32,28.28,109.56,9.22h-3.68V34.77h3.73V15.19l15.18,19.58h3.26V9.22h-3.73ZM87.15,23.54h13.23V20.22H87.14V12.53h14.93V9.21H83.34V34.77h18.92V31.45H87.14ZM71.59,20.3h0C66.44,19.06,65,18.08,65,15.7c0-2.14,1.89-3.59,4.71-3.59a12.06,12.06,0,0,1,7.07,2.55l2-2.83a14.1,14.1,0,0,0-9-3c-5.06,0-8.59,3-8.59,7.27,0,4.6,3,6.19,8.46,7.52C74.51,24.74,76,25.78,76,28.11s-2,3.77-5.09,3.77a12.34,12.34,0,0,1-8.3-3.26l-2.25,2.69a15.94,15.94,0,0,0,10.42,3.85c5.48,0,9-2.95,9-7.51C79.75,23.79,77.47,21.72,71.59,20.3ZM195.7,9.22l-7.69,12-7.64-12h-4.46L186,24.67V34.78h3.84V24.55L200,9.22Zm-64.63,3.46h8.37v22.1h3.84V12.68h8.37V9.22H131.08ZM169.41,24.8c3.86-1.07,6-3.77,6-7.63,0-4.91-3.59-8-9.38-8H154.67V34.76h3.8V25.58h6.45l6.48,9.2h4.44l-7-9.82Zm-10.95-2.5V12.6h7.17c3.74,0,5.88,1.77,5.88,4.84s-2.29,4.86-5.84,4.86Z M29,2.26a4.67,4.67,0,0,0-8,0L14.42,13.53A32.21,32.21,0,0,1,32.17,40.19H27.55A27.68,27.68,0,0,0,12.09,17.47L6,28a15.92,15.92,0,0,1,9.23,12.17H4.62A.76.76,0,0,1,4,39.06l2.94-5a10.74,10.74,0,0,0-3.36-1.9l-2.91,5a4.54,4.54,0,0,0,1.69,6.24A4.66,4.66,0,0,0,4.62,44H19.15a19.4,19.4,0,0,0-8-17.31l2.31-4A23.87,23.87,0,0,1,23.76,44H36.07a35.88,35.88,0,0,0-16.41-31.8l4.67-8a.77.77,0,0,1,1.05-.27c.53.29,20.29,34.77,20.66,35.17a.76.76,0,0,1-.68,1.13H40.6q.09,1.91,0,3.81h4.78A4.59,4.59,0,0,0,50,39.43a4.49,4.49,0,0,0-.62-2.28Z"></path> </svg> </a> <button class="btn-new silent xl:hidden" data-astro-cid-lyo5ukun="true" id="menu-toggle-button" aria-expanded="false" aria-controls="mobileMenu" type="button" aria-haspopup="true"><span class="label">
Menu
</span><div class="chevron transition-transform duration-200" aria-hidden="true"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke="currentColor" stroke-width="2" d="M9 4l8 8-8 8" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"/></svg>
</div></button> <div id="mobileMenu" class="xl:hidden w-full bg-white" data-astro-cid-qrknsbgv> <div class="container disable-padding-left disable-padding-right" data-astro-cid-bdd4tvdo style="--xs: 0%;--sm: 576px;--md: 768px;--lg: 992px;--xl: 1152px;">  <div class="mt-4" data-astro-cid-qrknsbgv> <div class="mb-4" data-astro-cid-qrknsbgv> <div class="collapsible-section xl:bg-transparent" data-collapsible-section="mobile-0" data-astro-cid-q3yarpdy> <button class="btn-new silent w-full text-left justify-start flex justify-between items-center xl:hidden collapsible-trigger plausible-event-name=Nav+Click+Product plausible-event-currentUrl=https://sentry.io/terms/" data-astro-cid-q3yarpdy="true" id="trigger-mobile-0" aria-expanded="false" aria-controls="content-mobile-0" type="button"><span class="label"> <span class="label font-medium text-sm leading-[18px] uppercase font-sans" data-astro-cid-q3yarpdy>Platform</span> </span><div class="chevron transition-transform duration-200" aria-hidden="true"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke="currentColor" stroke-width="2" d="M9 4l8 8-8 8" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"/></svg>
</div></button> <div id="content-mobile-0" class="xl:block" data-astro-cid-q3yarpdy> <div class="pl-4" data-astro-cid-q3yarpdy> <div data-astro-cid-qrknsbgv> <div data-astro-cid-qrknsbgv> <div class="collapsible-section xl:bg-transparent" data-collapsible-section="mobile-0-col-0-group" data-astro-cid-q3yarpdy> <button class="btn-new silent w-full text-left justify-start flex justify-between items-center collapsible-trigger" data-astro-cid-q3yarpdy="true" id="trigger-mobile-0-col-0-group" aria-expanded="false" aria-controls="content-mobile-0-col-0-group" type="button"><span class="label"> <span class="label font-medium text-sm leading-[18px] uppercase font-sans" data-astro-cid-q3yarpdy>Products</span> </span><div class="chevron transition-transform duration-200" aria-hidden="true"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke="currentColor" stroke-width="2" d="M9 4l8 8-8 8" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"/></svg>
</div></button> <div id="content-mobile-0-col-0-group" class="xl:block" data-astro-cid-q3yarpdy> <div class="pl-4" data-astro-cid-q3yarpdy>  <div data-astro-cid-cvxggrkk>  <ul class="list-none p-0 m-0 grid gap-y-5 mt-4 xl:mt-0" data-astro-cid-cvxggrkk> <li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/error-monitoring/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/error-monitoring/"> Error Monitoring </a> <script nonce="mDmU4cbt0iXImXZ07ByWTnN9mxGPNzYH" type="module" src="/_astro/Link.astro_astro_type_script_index_0_lang.P-XNDndR.js?dpl=dpl_2sy9WgsVVSjvikpYbfYobAahm34w"></script> </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/logs/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/logs/"> Logs </a>  </li>  </ul> </div> <div class="collapsible-section xl:bg-transparent" data-collapsible-section="mobile-0-col-0-subdropdown" data-astro-cid-q3yarpdy> <button class="btn-new silent w-full text-left justify-start flex justify-between items-center collapsible-trigger seer-subdropdown-trigger plausible-event-currentUrl=https://sentry.io/terms/" data-astro-cid-q3yarpdy="true" id="trigger-mobile-0-col-0-subdropdown" aria-expanded="false" aria-controls="content-mobile-0-col-0-subdropdown" type="button"><span class="label"> <span class="label font-medium text-sm leading-[18px] uppercase font-sans" data-astro-cid-q3yarpdy>Seer</span> </span><div class="chevron transition-transform duration-200" aria-hidden="true"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke="currentColor" stroke-width="2" d="M9 4l8 8-8 8" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"/></svg>
</div></button> <div id="content-mobile-0-col-0-subdropdown" class="xl:block" data-astro-cid-q3yarpdy> <div class="pl-4" data-astro-cid-q3yarpdy>  <div data-astro-cid-cvxggrkk>  <ul class="list-none p-0 m-0 grid gap-y-5 mt-4 xl:mt-0" data-astro-cid-cvxggrkk> <li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/seer/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/seer/"> Seer<span class="new-pill" data-astro-cid-iekwedp4>
NEW
</span> </a>  </li><li class="pb-1 pl-6 xl:pl-0 nested-item" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/seer/agent/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/seer/agent/"> Agent </a>  </li><li class="pb-1 pl-6 xl:pl-0 nested-item" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/seer/autofix/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/seer/autofix/"> Autofix </a>  </li><li class="pb-1 pl-6 xl:pl-0 nested-item" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/seer/ai-code-review/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/seer/ai-code-review/"> AI Code Review </a>  </li>  </ul> </div>  </div> </div> </div>  <script nonce="mDmU4cbt0iXImXZ07ByWTnN9mxGPNzYH" type="module">(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"c375fea9805680a06c17231d4eef06f831259223"};var n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="b5f1b979-09a8-4e87-8b19-c5e3dce3a8e7",e._sentryDebugIdIdentifier="sentry-dbid-b5f1b979-09a8-4e87-8b19-c5e3dce3a8e7")}catch{}})();function d(e){if(!e)return 0;let n=0,t=e.parentElement;for(;t;)t.hasAttribute("data-collapsible-section")&&n++,t=t.parentElement;return n}function o(){document.querySelectorAll("[id^='trigger-']").forEach(e=>{e.hasAttribute("data-listener-attached")||(e.setAttribute("data-listener-attached","true"),e.addEventListener("click",n=>{n.stopPropagation();const t=e.id.replace("trigger-","");if(!t||!document.getElementById(`content-${t}`))return;const a=e.getAttribute("aria-expanded")==="true";if(window.innerWidth<1152){if(!a){const c=e.closest("[data-collapsible-section]"),r=d(c);document.querySelectorAll("[id^='trigger-']").forEach(i=>{if(i.id.replace("trigger-","")!==t){const l=i.closest("[data-collapsible-section]");d(l)===r&&i.setAttribute("aria-expanded","false")}})}e.setAttribute("aria-expanded",String(!a))}}))})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",o):o();</script><div data-astro-cid-cvxggrkk>  <ul class="list-none p-0 m-0 grid gap-y-5 mt-4 xl:mt-0" data-astro-cid-cvxggrkk> <li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/session-replay/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/session-replay/"> Session Replay </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/metrics/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/metrics/"> Metrics<span class="new-pill" data-astro-cid-iekwedp4>
NEW
</span> </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/tracing/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/tracing/"> Tracing </a>  </li><li class="pb-1 pl-6 xl:pl-0 nested-item" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/tracing/ai-agent/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/tracing/ai-agent/"> Agent Tracing </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/profiling/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/profiling/"> Profiling </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/size-analysis/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/size-analysis/"> Size Analysis </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/cron-monitoring/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/cron-monitoring/"> Cron Monitoring </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/uptime-monitoring/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/uptime-monitoring/"> Uptime Monitoring </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://labs.sentry.dev/" target="_blank" rel="noopener noreferrer" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://labs.sentry.dev/"> Labs<span class="new-pill" data-astro-cid-iekwedp4>
NEW
</span> </a>  </li>  </ul> </div> </div> </div> </div>   </div><div data-astro-cid-qrknsbgv> <div class="collapsible-section xl:bg-transparent" data-collapsible-section="mobile-0-col-2-item-0" data-astro-cid-q3yarpdy> <button class="btn-new silent w-full text-left justify-start flex justify-between items-center collapsible-trigger" data-astro-cid-q3yarpdy="true" id="trigger-mobile-0-col-2-item-0" aria-expanded="false" aria-controls="content-mobile-0-col-2-item-0" type="button"><span class="label"> <span class="label font-medium text-sm leading-[18px] uppercase font-sans" data-astro-cid-q3yarpdy>Integrations</span> </span><div class="chevron transition-transform duration-200" aria-hidden="true"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke="currentColor" stroke-width="2" d="M9 4l8 8-8 8" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"/></svg>
</div></button> <div id="content-mobile-0-col-2-item-0" class="xl:block" data-astro-cid-q3yarpdy> <div class="pl-4" data-astro-cid-q3yarpdy>  <div data-astro-cid-cvxggrkk>  <ul class="list-none p-0 m-0 grid gap-y-5 mt-4 xl:mt-0" data-astro-cid-cvxggrkk> <li class="pb-1 pl-6 xl:pl-0 pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/integrations/github/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/integrations/github/"> <img src="/astro-assets/nav-icons/github.png" alt="" aria-hidden="true" class="w-4 h-4" data-astro-cid-cvxggrkk>Github </a>  </li><li class="pb-1 pl-6 xl:pl-0 pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/integrations/slack/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/integrations/slack/"> <img src="/astro-assets/nav-icons/slack.png" alt="" aria-hidden="true" class="w-4 h-4" data-astro-cid-cvxggrkk>Slack </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://cli.sentry.dev/" target="_blank" rel="noopener noreferrer" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://cli.sentry.dev/"> Sentry CLI </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://mcp.sentry.dev/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://mcp.sentry.dev/"> Sentry MCP </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/integrations/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/integrations/"> All Integrations </a>  </li>  </ul> </div>  </div> </div> </div>   </div> </div> </div> </div> </div>   </div><div class="mb-4" data-astro-cid-qrknsbgv> <div class="collapsible-section xl:bg-transparent" data-collapsible-section="mobile-1" data-astro-cid-q3yarpdy> <button class="btn-new silent w-full text-left justify-start flex justify-between items-center xl:hidden collapsible-trigger plausible-event-name=Nav+Click+Solutions plausible-event-currentUrl=https://sentry.io/terms/" data-astro-cid-q3yarpdy="true" id="trigger-mobile-1" aria-expanded="false" aria-controls="content-mobile-1" type="button"><span class="label"> <span class="label font-medium text-sm leading-[18px] uppercase font-sans" data-astro-cid-q3yarpdy>Solutions</span> </span><div class="chevron transition-transform duration-200" aria-hidden="true"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke="currentColor" stroke-width="2" d="M9 4l8 8-8 8" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"/></svg>
</div></button> <div id="content-mobile-1" class="xl:block" data-astro-cid-q3yarpdy> <div class="pl-4" data-astro-cid-q3yarpdy> <div data-astro-cid-cvxggrkk> <h3 class="text-base mb-4 font-semibold text-gray-800 hidden xl:block xl:pl-0 pl-5" data-astro-cid-cvxggrkk> Solutions </h3> <ul class="list-none p-0 m-0 grid gap-y-5 mt-4 xl:mt-0" data-astro-cid-cvxggrkk> <li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/for/full-stack/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/for/full-stack/"> Web / Full Stack Development </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/solutions/mobile-developers/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/solutions/mobile-developers/"> Mobile Crash Reporting </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/solutions/game-developers/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/solutions/game-developers/"> Game Crash Reporting </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/solutions/ai-observability/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/solutions/ai-observability/"> AI Observability </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/solutions/application-performance-monitoring/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/solutions/application-performance-monitoring/"> Application Performance Monitoring </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/solutions/application-observability/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/solutions/application-observability/"> Application Observability </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/solutions/real-user-monitoring-rum/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/solutions/real-user-monitoring-rum/"> Real User Monitoring </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/solutions/ecommerce/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/solutions/ecommerce/"> Ecommerce </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/solutions/opentelemetry/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/solutions/opentelemetry/"> OpenTelemetry </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/for/enterprise/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/for/enterprise/"> Enterprise </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/for/startups/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/for/startups/"> Startups </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/platforms/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/platforms/"> All SDKs </a>  </li>  </ul> </div> </div> </div> </div>   </div><div class="mb-4" data-astro-cid-qrknsbgv> <div class="collapsible-section xl:bg-transparent" data-collapsible-section="mobile-2" data-astro-cid-q3yarpdy> <button class="btn-new silent w-full text-left justify-start flex justify-between items-center xl:hidden collapsible-trigger plausible-event-name=Nav+Click+Resources plausible-event-currentUrl=https://sentry.io/terms/" data-astro-cid-q3yarpdy="true" id="trigger-mobile-2" aria-expanded="false" aria-controls="content-mobile-2" type="button"><span class="label"> <span class="label font-medium text-sm leading-[18px] uppercase font-sans" data-astro-cid-q3yarpdy>Resources</span> </span><div class="chevron transition-transform duration-200" aria-hidden="true"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke="currentColor" stroke-width="2" d="M9 4l8 8-8 8" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"/></svg>
</div></button> <div id="content-mobile-2" class="xl:block" data-astro-cid-q3yarpdy> <div class="pl-4" data-astro-cid-q3yarpdy> <div data-astro-cid-qrknsbgv> <div data-astro-cid-qrknsbgv> <div class="collapsible-section xl:bg-transparent" data-collapsible-section="mobile-2-col-0-item-0" data-astro-cid-q3yarpdy> <button class="btn-new silent w-full text-left justify-start flex justify-between items-center collapsible-trigger" data-astro-cid-q3yarpdy="true" id="trigger-mobile-2-col-0-item-0" aria-expanded="false" aria-controls="content-mobile-2-col-0-item-0" type="button"><span class="label"> <span class="label font-medium text-sm leading-[18px] uppercase font-sans" data-astro-cid-q3yarpdy>Learn</span> </span><div class="chevron transition-transform duration-200" aria-hidden="true"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke="currentColor" stroke-width="2" d="M9 4l8 8-8 8" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"/></svg>
</div></button> <div id="content-mobile-2-col-0-item-0" class="xl:block" data-astro-cid-q3yarpdy> <div class="pl-4" data-astro-cid-q3yarpdy>  <div data-astro-cid-cvxggrkk>  <ul class="list-none p-0 m-0 grid gap-y-5 mt-4 xl:mt-0" data-astro-cid-cvxggrkk> <li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://blog.sentry.io/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://blog.sentry.io/"> Blog </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/changelog/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/changelog/"> Changelog </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sandbox.sentry.io/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sandbox.sentry.io/"> Sandbox </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/resources/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/resources/"> Resources </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://syntax.fm/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://syntax.fm/"> Syntax </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/customers/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/customers/"> Customers </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/cookbook/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/cookbook/"> Cookbook </a>  </li>  </ul> </div>  </div> </div> </div>   </div><div data-astro-cid-qrknsbgv> <div class="collapsible-section xl:bg-transparent" data-collapsible-section="mobile-2-col-1-item-0" data-astro-cid-q3yarpdy> <button class="btn-new silent w-full text-left justify-start flex justify-between items-center collapsible-trigger" data-astro-cid-q3yarpdy="true" id="trigger-mobile-2-col-1-item-0" aria-expanded="false" aria-controls="content-mobile-2-col-1-item-0" type="button"><span class="label"> <span class="label font-medium text-sm leading-[18px] uppercase font-sans" data-astro-cid-q3yarpdy>Support</span> </span><div class="chevron transition-transform duration-200" aria-hidden="true"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke="currentColor" stroke-width="2" d="M9 4l8 8-8 8" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"/></svg>
</div></button> <div id="content-mobile-2-col-1-item-0" class="xl:block" data-astro-cid-q3yarpdy> <div class="pl-4" data-astro-cid-q3yarpdy>  <div data-astro-cid-cvxggrkk>  <ul class="list-none p-0 m-0 grid gap-y-5 mt-4 xl:mt-0" data-astro-cid-cvxggrkk> <li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/contact/enterprise/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/contact/enterprise/"> Contact Us </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://help.sentry.io/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://help.sentry.io/"> Help Center </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://status.sentry.io/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://status.sentry.io/"> Status </a>  </li>  </ul> </div>  </div> </div> </div>  <div class="collapsible-section xl:bg-transparent" data-collapsible-section="mobile-2-col-1-item-1" data-astro-cid-q3yarpdy> <button class="btn-new silent w-full text-left justify-start flex justify-between items-center collapsible-trigger" data-astro-cid-q3yarpdy="true" id="trigger-mobile-2-col-1-item-1" aria-expanded="false" aria-controls="content-mobile-2-col-1-item-1" type="button"><span class="label"> <span class="label font-medium text-sm leading-[18px] uppercase font-sans" data-astro-cid-q3yarpdy>Hang out with us</span> </span><div class="chevron transition-transform duration-200" aria-hidden="true"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke="currentColor" stroke-width="2" d="M9 4l8 8-8 8" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"/></svg>
</div></button> <div id="content-mobile-2-col-1-item-1" class="xl:block" data-astro-cid-q3yarpdy> <div class="pl-4" data-astro-cid-q3yarpdy>  <div data-astro-cid-cvxggrkk>  <ul class="list-none p-0 m-0 grid gap-y-5 mt-4 xl:mt-0" data-astro-cid-cvxggrkk> <li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/community/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/community/"> Community </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/events/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/events/"> Events </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.shop/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.shop/"> Merch </a>  </li>  </ul> </div>  </div> </div> </div>   </div> </div> </div> </div> </div>   </div><div class="mb-4" data-astro-cid-qrknsbgv> <a href="https://docs.sentry.io/" class="btn-new silent plausible-event-name=Nav+Click+Docs plausible-event-currentUrl=https://sentry.io/terms/ w-full justify-start" data-astro-cid-qrknsbgv="true" data-link-href="https://docs.sentry.io/"> <span class="label">Docs</span> </a>  </div><div class="mb-4" data-astro-cid-qrknsbgv> <a href="https://sentry.io/pricing/" class="btn-new silent plausible-event-name=Nav+Click+Pricing plausible-event-currentUrl=https://sentry.io/terms/ w-full justify-start" data-astro-cid-qrknsbgv="true" data-link-href="https://sentry.io/pricing/"> <span class="label">Pricing</span> </a>  </div> </div> <div id="globalAuthContainer" class="flex flex-col xl:flex xl:flex-row xl:items-center xl:gap-2 xl:flex-shrink-0 p-4" data-astro-cid-igvqhh5r> <a href="https://sentry.io/auth/login/" class="btn-new silent w-full xl:w-auto mb-2 xl:mb-0 plausible-event-name=Nav+Click+SignIn plausible-event-currentUrl=https://sentry.io/terms/" data-astro-cid-igvqhh5r="true" data-link-href="https://sentry.io/auth/login/"> <span class="label">
Sign In
</span> </a>  <a href="https://sentry.io/demo/" class="btn-new secondary-light w-full xl:w-auto mb-2 xl:mb-0 plausible-event-name=Nav+Click+Demo plausible-event-currentUrl=https://sentry.io/terms/" data-astro-cid-igvqhh5r="true" data-link-href="https://sentry.io/demo/"> <span class="label">
Get Demo
</span> </a>  <a href="https://sentry.io/signup/" class="btn-new primary-light w-full xl:w-auto mb-2 xl:mb-0 plausible-event-name=Nav+Click+SignUp plausible-event-currentUrl=https://sentry.io/terms/" data-astro-cid-igvqhh5r="true" data-link-href="https://sentry.io/signup/"> <span class="label">
Get Started
</span> </a>  </div>  </div> </div> <ul id="desktopNavBar" class="hidden xl:flex xl:flex-row xl:items-center xl:flex-1 xl:justify-evenly xl:relative" data-astro-cid-wa4ym5ce>  <li class="list-none flex-shrink-0 w-full xl:w-auto xl:flex xl:items-center pt-4 xl:pt-0 xl:relative" data-menu-key="platform" id="menu-item-platform-0"> <div class="w-full xl:w-auto flex justify-start xl:justify-center"> <button class="btn-new silent w-full xl:w-auto plausible-event-name=Nav+Click+Product plausible-event-currentUrl=https://sentry.io/terms/" data-menu-trigger="platform" aria-expanded="false" aria-controls="dropdown-platform" type="button" aria-haspopup="true"><span class="label">Platform</span><div class="chevron transition-transform duration-200" aria-hidden="true"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke="currentColor" stroke-width="2" d="M9 4l8 8-8 8" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"/></svg>
</div></button> </div> </li>  <script nonce="mDmU4cbt0iXImXZ07ByWTnN9mxGPNzYH">(function(){const uniqueId = "menu-item-platform-0";
const menuKey = "platform";

  function initializeDropdown() {
    const menuItem = document.getElementById(uniqueId);

    if (!menuItem || !menuKey) {
      return;
    }

    const trigger = document.querySelector(`[data-menu-trigger="${menuKey}"]`);
    const dropdown = document.querySelector(
      `[data-menu-dropdown="${menuKey}"]`,
    );



    if (trigger && dropdown) {
      trigger.removeEventListener("click", handleDropdownClick);
      trigger.removeEventListener("keydown", handleDropdownKeydown);
      trigger.addEventListener("click", handleDropdownClick);
      trigger.addEventListener("keydown", handleDropdownKeydown);
    }
  }

  function handleDropdownClick(e) {
    const trigger = e.currentTarget;
    const menuKey = trigger.getAttribute("data-menu-trigger");
    const dropdown = document.querySelector(
      `[data-menu-dropdown="${menuKey}"]`,
    );



    if (dropdown) {
      if (trigger.getAttribute("aria-controls")) {
        e.preventDefault();
        e.stopPropagation();
      }

      toggleDropdown(trigger, dropdown, menuKey);
    }
  }

  function handleDropdownKeydown(e) {
    const trigger = e.currentTarget;
    const menuKey = trigger.getAttribute("data-menu-trigger");
    const dropdown = document.querySelector(
      `[data-menu-dropdown="${menuKey}"]`,
    );

    if (dropdown) {
      if (e.key === "Enter" || e.key === " ") {
        e.preventDefault();
        toggleDropdown(trigger, dropdown, menuKey);
      } else if (e.key === "Escape") {
        // Close all dropdowns
        document
          .querySelectorAll("[data-menu-dropdown]")
          .forEach((d) => d.classList.add("hidden"));
        document
          .querySelectorAll("[data-menu-trigger]")
          .forEach((t) => t.setAttribute("aria-expanded", "false"));
      }
    }
  }

  function toggleDropdown(trigger, dropdown, menuKey) {
    const isExpanded = trigger.getAttribute("aria-expanded") === "true";

    if (isExpanded) {
      trigger.setAttribute("aria-expanded", "false");
      dropdown.classList.add("hidden");
    } else {
      // Close all other dropdowns first (accordion behavior)
      document
        .querySelectorAll("[data-menu-dropdown]")
        .forEach((d) => d.classList.add("hidden"));
      document
        .querySelectorAll("[data-menu-trigger]")
        .forEach((t) => t.setAttribute("aria-expanded", "false"));

      // Open this dropdown
      trigger.setAttribute("aria-expanded", "true");
      dropdown.classList.remove("hidden");
    }
  }

  // Initialize immediately when DOM is ready
  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", initializeDropdown);
  } else {
    initializeDropdown();
  }
})();</script> <div class="hidden block xl:absolute xl:top-12 xl:left-0 bg-rich-black xl:bg-white xl:shadow-lg rounded-xl overflow-hidden xl:rounded-xl xl:overflow-visible z-[9999] xl:z-[9999] transition-all duration-200 ease-in-out w-full xl:w-auto xl:mt-0" data-menu-dropdown="platform" id="dropdown-platform" data-astro-cid-pqntur4a> <div class="xl:p-0" data-astro-cid-pqntur4a> <div class="flex flex-col xl:flex-row flex-1" data-astro-cid-pqntur4a> <div class="flex flex-col self-stretch xl:w-full" data-astro-cid-pqntur4a> <div class="flex flex-col xl:flex-row flex-1 xl:gap-8" style="--column-count: 3;" data-astro-cid-rrixboex> <div class="flex flex-col self-stretch xl:flex-1  " data-astro-cid-rrixboex> <div class="flex-1 flex flex-col" data-astro-cid-rrixboex> <div class="xl:mb-2" data-astro-cid-rrixboex>  <div class="xl:hidden" data-astro-cid-rrixboex> <div class="collapsible-section bg-rich-black xl:bg-transparent" data-collapsible-section="platform-col-0" data-astro-cid-q3yarpdy> <button class="btn-new subnav dark-mode w-full text-left justify-start flex justify-between items-center xl:hidden collapsible-trigger" data-astro-cid-q3yarpdy="true" id="trigger-platform-col-0" aria-expanded="false" aria-controls="content-platform-col-0" type="button"><span class="label"> <span class="label font-medium text-sm leading-[18px] uppercase font-sans" data-astro-cid-q3yarpdy>Products</span> </span><div class="chevron transition-transform duration-200" aria-hidden="true"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke="currentColor" stroke-width="2" d="M9 4l8 8-8 8" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"/></svg>
</div></button> <div id="content-platform-col-0" class="xl:block" data-astro-cid-q3yarpdy> <div class="pl-4" data-astro-cid-q3yarpdy>  <div class="linklist-dark" data-astro-cid-cvxggrkk> <h3 class="text-base mb-4 font-semibold text-white hidden xl:block xl:pl-0 pl-5" data-astro-cid-cvxggrkk> Products </h3> <ul class="list-none p-0 m-0 grid gap-y-5 mt-4 xl:mt-0" data-astro-cid-cvxggrkk> <li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/error-monitoring/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://sentry.io/product/error-monitoring/"> Error Monitoring </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/logs/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://sentry.io/product/logs/"> Logs </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/session-replay/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://sentry.io/product/session-replay/"> Session Replay </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/metrics/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://sentry.io/product/metrics/"> Metrics<span class="new-pill" data-astro-cid-iekwedp4>
NEW
</span> </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/tracing/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://sentry.io/product/tracing/"> Tracing </a>  </li><li class="pb-1 pl-6 xl:pl-0 nested-item" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/tracing/ai-agent/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://sentry.io/product/tracing/ai-agent/"> Agent Tracing </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/profiling/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://sentry.io/product/profiling/"> Profiling </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/size-analysis/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://sentry.io/product/size-analysis/"> Size Analysis </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/cron-monitoring/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://sentry.io/product/cron-monitoring/"> Cron Monitoring </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/uptime-monitoring/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://sentry.io/product/uptime-monitoring/"> Uptime Monitoring </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://labs.sentry.dev/" target="_blank" rel="noopener noreferrer" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://labs.sentry.dev/"> Labs<span class="new-pill" data-astro-cid-iekwedp4>
NEW
</span> </a>  </li>  </ul> </div>  </div> </div> </div>   </div>  <div class="hidden xl:block" data-astro-cid-rrixboex> <div data-astro-cid-cvxggrkk> <h3 class="text-base mb-4 font-semibold text-gray-800 xl:pl-0 pl-5" data-astro-cid-cvxggrkk> Products </h3> <ul class="list-none p-0 m-0 grid gap-y-5 mt-4 xl:mt-0" data-astro-cid-cvxggrkk> <li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/error-monitoring/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/error-monitoring/"> Error Monitoring </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/logs/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/logs/"> Logs </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/session-replay/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/session-replay/"> Session Replay </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/metrics/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/metrics/"> Metrics<span class="new-pill" data-astro-cid-iekwedp4>
NEW
</span> </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/tracing/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/tracing/"> Tracing </a>  </li><li class="pb-1 pl-6 xl:pl-0 nested-item" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/tracing/ai-agent/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/tracing/ai-agent/"> Agent Tracing </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/profiling/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/profiling/"> Profiling </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/size-analysis/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/size-analysis/"> Size Analysis </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/cron-monitoring/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/cron-monitoring/"> Cron Monitoring </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/uptime-monitoring/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/uptime-monitoring/"> Uptime Monitoring </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://labs.sentry.dev/" target="_blank" rel="noopener noreferrer" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://labs.sentry.dev/"> Labs<span class="new-pill" data-astro-cid-iekwedp4>
NEW
</span> </a>  </li>  </ul> </div> </div> </div> </div> </div><div class="flex flex-col self-stretch xl:flex-1 wide-column " data-astro-cid-rrixboex> <div class="flex-1 flex flex-col" data-astro-cid-rrixboex> <div class="xl:mb-2" data-astro-cid-rrixboex>  <div class="xl:hidden" data-astro-cid-rrixboex> <div class="collapsible-section bg-rich-black xl:bg-transparent" data-collapsible-section="platform-col-1-sub-0" data-astro-cid-q3yarpdy> <button class="btn-new subnav dark-mode w-full text-left justify-start flex justify-between items-center xl:hidden collapsible-trigger" data-astro-cid-q3yarpdy="true" id="trigger-platform-col-1-sub-0" aria-expanded="false" aria-controls="content-platform-col-1-sub-0" type="button"><span class="label"> <span class="label font-medium text-sm leading-[18px] uppercase font-sans" data-astro-cid-q3yarpdy>AI Debugging</span> </span><div class="chevron transition-transform duration-200" aria-hidden="true"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke="currentColor" stroke-width="2" d="M9 4l8 8-8 8" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"/></svg>
</div></button> <div id="content-platform-col-1-sub-0" class="xl:block" data-astro-cid-q3yarpdy> <div class="pl-4" data-astro-cid-q3yarpdy>  <div class="linklist-dark" data-astro-cid-cvxggrkk> <h3 class="text-base mb-4 font-semibold text-white hidden xl:block xl:pl-0 pl-5" data-astro-cid-cvxggrkk> AI Debugging </h3> <ul class="list-none p-0 m-0 grid gap-y-5 mt-4 xl:mt-0" data-astro-cid-cvxggrkk> <li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/seer/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://sentry.io/product/seer/"> Seer<span class="new-pill" data-astro-cid-iekwedp4>
NEW
</span> </a>  </li><li class="pb-1 pl-6 xl:pl-0 nested-item" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/seer/agent/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://sentry.io/product/seer/agent/"> Agent </a>  </li><li class="pb-1 pl-6 xl:pl-0 nested-item" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/seer/autofix/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://sentry.io/product/seer/autofix/"> Autofix </a>  </li><li class="pb-1 pl-6 xl:pl-0 nested-item" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/seer/ai-code-review/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://sentry.io/product/seer/ai-code-review/"> AI Code Review </a>  </li>  </ul> </div>  </div> </div> </div>   </div>  <div class="hidden xl:block" data-astro-cid-rrixboex> <div data-astro-cid-cvxggrkk> <h3 class="text-base mb-4 font-semibold text-gray-800 xl:pl-0 pl-5" data-astro-cid-cvxggrkk> AI Debugging </h3> <ul class="list-none p-0 m-0 grid gap-y-5 mt-4 xl:mt-0" data-astro-cid-cvxggrkk> <li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/seer/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/seer/"> Seer<span class="new-pill" data-astro-cid-iekwedp4>
NEW
</span> </a>  </li><li class="pb-1 pl-6 xl:pl-0 nested-item" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/seer/agent/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/seer/agent/"> Agent </a>  </li><li class="pb-1 pl-6 xl:pl-0 nested-item" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/seer/autofix/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/seer/autofix/"> Autofix </a>  </li><li class="pb-1 pl-6 xl:pl-0 nested-item" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/seer/ai-code-review/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/seer/ai-code-review/"> AI Code Review </a>  </li>  </ul> </div> </div> </div> </div> </div><div class="flex flex-col self-stretch xl:flex-1 bg-featured-light relative" data-astro-cid-rrixboex> <div class="flex-1 flex flex-col" data-astro-cid-rrixboex> <div class="xl:mb-2" data-astro-cid-rrixboex>  <div class="xl:hidden" data-astro-cid-rrixboex> <div class="collapsible-section bg-rich-black xl:bg-transparent" data-collapsible-section="platform-col-2-sub-0" data-astro-cid-q3yarpdy> <button class="btn-new subnav dark-mode w-full text-left justify-start flex justify-between items-center xl:hidden collapsible-trigger" data-astro-cid-q3yarpdy="true" id="trigger-platform-col-2-sub-0" aria-expanded="false" aria-controls="content-platform-col-2-sub-0" type="button"><span class="label"> <span class="label font-medium text-sm leading-[18px] uppercase font-sans" data-astro-cid-q3yarpdy>Integrations</span> </span><div class="chevron transition-transform duration-200" aria-hidden="true"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke="currentColor" stroke-width="2" d="M9 4l8 8-8 8" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"/></svg>
</div></button> <div id="content-platform-col-2-sub-0" class="xl:block" data-astro-cid-q3yarpdy> <div class="pl-4" data-astro-cid-q3yarpdy>  <div class="linklist-dark" data-astro-cid-cvxggrkk> <h3 class="text-base mb-4 font-semibold text-white hidden xl:block xl:pl-0 pl-5" data-astro-cid-cvxggrkk> Integrations </h3> <ul class="list-none p-0 m-0 grid gap-y-5 mt-4 xl:mt-0" data-astro-cid-cvxggrkk> <li class="pb-1 pl-6 xl:pl-0 pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/integrations/github/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://sentry.io/integrations/github/"> <img src="/astro-assets/nav-icons/github.png" alt="" aria-hidden="true" class="w-4 h-4" data-astro-cid-cvxggrkk>Github </a>  </li><li class="pb-1 pl-6 xl:pl-0 pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/integrations/slack/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://sentry.io/integrations/slack/"> <img src="/astro-assets/nav-icons/slack.png" alt="" aria-hidden="true" class="w-4 h-4" data-astro-cid-cvxggrkk>Slack </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://cli.sentry.dev/" target="_blank" rel="noopener noreferrer" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://cli.sentry.dev/"> Sentry CLI </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://mcp.sentry.dev/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://mcp.sentry.dev/"> Sentry MCP </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/integrations/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://sentry.io/integrations/"> All Integrations </a>  </li>  </ul> </div>  </div> </div> </div>   </div>  <div class="hidden xl:block" data-astro-cid-rrixboex> <div data-astro-cid-cvxggrkk> <h3 class="text-base mb-4 font-semibold text-gray-800 xl:pl-0 pl-5" data-astro-cid-cvxggrkk> Integrations </h3> <ul class="list-none p-0 m-0 grid gap-y-5 mt-4 xl:mt-0" data-astro-cid-cvxggrkk> <li class="pb-1 pl-6 xl:pl-0 pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/integrations/github/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/integrations/github/"> <img src="/astro-assets/nav-icons/github.png" alt="" aria-hidden="true" class="w-4 h-4" data-astro-cid-cvxggrkk>Github </a>  </li><li class="pb-1 pl-6 xl:pl-0 pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/integrations/slack/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/integrations/slack/"> <img src="/astro-assets/nav-icons/slack.png" alt="" aria-hidden="true" class="w-4 h-4" data-astro-cid-cvxggrkk>Slack </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://cli.sentry.dev/" target="_blank" rel="noopener noreferrer" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://cli.sentry.dev/"> Sentry CLI </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://mcp.sentry.dev/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://mcp.sentry.dev/"> Sentry MCP </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/integrations/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/integrations/"> All Integrations </a>  </li>  </ul> </div> </div> </div> </div> </div> </div> </div>  </div> </div> </div> <li class="list-none flex-shrink-0 w-full xl:w-auto xl:flex xl:items-center pt-4 xl:pt-0 xl:relative" data-menu-key="solutions" id="menu-item-solutions-1"> <div class="w-full xl:w-auto flex justify-start xl:justify-center"> <button class="btn-new silent w-full xl:w-auto plausible-event-name=Nav+Click+Solutions plausible-event-currentUrl=https://sentry.io/terms/" data-menu-trigger="solutions" aria-expanded="false" aria-controls="dropdown-solutions" type="button" aria-haspopup="true"><span class="label">Solutions</span><div class="chevron transition-transform duration-200" aria-hidden="true"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke="currentColor" stroke-width="2" d="M9 4l8 8-8 8" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"/></svg>
</div></button> </div> </li>  <script nonce="mDmU4cbt0iXImXZ07ByWTnN9mxGPNzYH">(function(){const uniqueId = "menu-item-solutions-1";
const menuKey = "solutions";

  function initializeDropdown() {
    const menuItem = document.getElementById(uniqueId);

    if (!menuItem || !menuKey) {
      return;
    }

    const trigger = document.querySelector(`[data-menu-trigger="${menuKey}"]`);
    const dropdown = document.querySelector(
      `[data-menu-dropdown="${menuKey}"]`,
    );



    if (trigger && dropdown) {
      trigger.removeEventListener("click", handleDropdownClick);
      trigger.removeEventListener("keydown", handleDropdownKeydown);
      trigger.addEventListener("click", handleDropdownClick);
      trigger.addEventListener("keydown", handleDropdownKeydown);
    }
  }

  function handleDropdownClick(e) {
    const trigger = e.currentTarget;
    const menuKey = trigger.getAttribute("data-menu-trigger");
    const dropdown = document.querySelector(
      `[data-menu-dropdown="${menuKey}"]`,
    );



    if (dropdown) {
      if (trigger.getAttribute("aria-controls")) {
        e.preventDefault();
        e.stopPropagation();
      }

      toggleDropdown(trigger, dropdown, menuKey);
    }
  }

  function handleDropdownKeydown(e) {
    const trigger = e.currentTarget;
    const menuKey = trigger.getAttribute("data-menu-trigger");
    const dropdown = document.querySelector(
      `[data-menu-dropdown="${menuKey}"]`,
    );

    if (dropdown) {
      if (e.key === "Enter" || e.key === " ") {
        e.preventDefault();
        toggleDropdown(trigger, dropdown, menuKey);
      } else if (e.key === "Escape") {
        // Close all dropdowns
        document
          .querySelectorAll("[data-menu-dropdown]")
          .forEach((d) => d.classList.add("hidden"));
        document
          .querySelectorAll("[data-menu-trigger]")
          .forEach((t) => t.setAttribute("aria-expanded", "false"));
      }
    }
  }

  function toggleDropdown(trigger, dropdown, menuKey) {
    const isExpanded = trigger.getAttribute("aria-expanded") === "true";

    if (isExpanded) {
      trigger.setAttribute("aria-expanded", "false");
      dropdown.classList.add("hidden");
    } else {
      // Close all other dropdowns first (accordion behavior)
      document
        .querySelectorAll("[data-menu-dropdown]")
        .forEach((d) => d.classList.add("hidden"));
      document
        .querySelectorAll("[data-menu-trigger]")
        .forEach((t) => t.setAttribute("aria-expanded", "false"));

      // Open this dropdown
      trigger.setAttribute("aria-expanded", "true");
      dropdown.classList.remove("hidden");
    }
  }

  // Initialize immediately when DOM is ready
  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", initializeDropdown);
  } else {
    initializeDropdown();
  }
})();</script> <div class="hidden block xl:absolute xl:top-12 xl:left-0 bg-rich-black xl:bg-white xl:shadow-lg rounded-xl overflow-hidden xl:rounded-xl xl:overflow-visible z-[9999] xl:z-[9999] transition-all duration-200 ease-in-out w-full xl:w-auto xl:mt-0" data-menu-dropdown="solutions" id="dropdown-solutions" data-astro-cid-pqntur4a> <div class="p-6 xl:p-0" data-astro-cid-pqntur4a> <div class="flex flex-col xl:flex-row flex-1" data-astro-cid-pqntur4a> <div class="flex flex-col self-stretch xl:w-full" data-astro-cid-pqntur4a> <div class="flex flex-col lg:flex-row flex-1"> <div class="flex flex-col self-stretch p-4 lg:p-[1.5rem]"> <div class="pl-4 lg:pl-0 mb-6 lg:mb-0 flex-1 flex flex-col"> <div class="mb-4 lg:mb-2"> <div data-astro-cid-cvxggrkk>  <ul class="list-none p-0 m-0 grid gap-y-5 mt-4 xl:mt-0" data-astro-cid-cvxggrkk> <li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/for/full-stack/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/for/full-stack/"> Web / Full Stack Development </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/solutions/mobile-developers/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/solutions/mobile-developers/"> Mobile Crash Reporting </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/solutions/game-developers/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/solutions/game-developers/"> Game Crash Reporting </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/solutions/ai-observability/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/solutions/ai-observability/"> AI Observability </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/solutions/application-performance-monitoring/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/solutions/application-performance-monitoring/"> Application Performance Monitoring </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/solutions/application-observability/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/solutions/application-observability/"> Application Observability </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/solutions/real-user-monitoring-rum/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/solutions/real-user-monitoring-rum/"> Real User Monitoring </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/solutions/ecommerce/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/solutions/ecommerce/"> Ecommerce </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/solutions/opentelemetry/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/solutions/opentelemetry/"> OpenTelemetry </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/for/enterprise/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/for/enterprise/"> Enterprise </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/for/startups/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/for/startups/"> Startups </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/platforms/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/platforms/"> All SDKs </a>  </li>  </ul> </div> </div> </div> </div> </div> </div>  </div> </div> </div> <li class="list-none flex-shrink-0 w-full xl:w-auto xl:flex xl:items-center pt-4 xl:pt-0 xl:relative" data-menu-key="resources" id="menu-item-resources-2"> <div class="w-full xl:w-auto flex justify-start xl:justify-center"> <button class="btn-new silent w-full xl:w-auto plausible-event-name=Nav+Click+Resources plausible-event-currentUrl=https://sentry.io/terms/" data-menu-trigger="resources" aria-expanded="false" aria-controls="dropdown-resources" type="button" aria-haspopup="true"><span class="label">Resources</span><div class="chevron transition-transform duration-200" aria-hidden="true"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke="currentColor" stroke-width="2" d="M9 4l8 8-8 8" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"/></svg>
</div></button> </div> </li>  <script nonce="mDmU4cbt0iXImXZ07ByWTnN9mxGPNzYH">(function(){const uniqueId = "menu-item-resources-2";
const menuKey = "resources";

  function initializeDropdown() {
    const menuItem = document.getElementById(uniqueId);

    if (!menuItem || !menuKey) {
      return;
    }

    const trigger = document.querySelector(`[data-menu-trigger="${menuKey}"]`);
    const dropdown = document.querySelector(
      `[data-menu-dropdown="${menuKey}"]`,
    );



    if (trigger && dropdown) {
      trigger.removeEventListener("click", handleDropdownClick);
      trigger.removeEventListener("keydown", handleDropdownKeydown);
      trigger.addEventListener("click", handleDropdownClick);
      trigger.addEventListener("keydown", handleDropdownKeydown);
    }
  }

  function handleDropdownClick(e) {
    const trigger = e.currentTarget;
    const menuKey = trigger.getAttribute("data-menu-trigger");
    const dropdown = document.querySelector(
      `[data-menu-dropdown="${menuKey}"]`,
    );



    if (dropdown) {
      if (trigger.getAttribute("aria-controls")) {
        e.preventDefault();
        e.stopPropagation();
      }

      toggleDropdown(trigger, dropdown, menuKey);
    }
  }

  function handleDropdownKeydown(e) {
    const trigger = e.currentTarget;
    const menuKey = trigger.getAttribute("data-menu-trigger");
    const dropdown = document.querySelector(
      `[data-menu-dropdown="${menuKey}"]`,
    );

    if (dropdown) {
      if (e.key === "Enter" || e.key === " ") {
        e.preventDefault();
        toggleDropdown(trigger, dropdown, menuKey);
      } else if (e.key === "Escape") {
        // Close all dropdowns
        document
          .querySelectorAll("[data-menu-dropdown]")
          .forEach((d) => d.classList.add("hidden"));
        document
          .querySelectorAll("[data-menu-trigger]")
          .forEach((t) => t.setAttribute("aria-expanded", "false"));
      }
    }
  }

  function toggleDropdown(trigger, dropdown, menuKey) {
    const isExpanded = trigger.getAttribute("aria-expanded") === "true";

    if (isExpanded) {
      trigger.setAttribute("aria-expanded", "false");
      dropdown.classList.add("hidden");
    } else {
      // Close all other dropdowns first (accordion behavior)
      document
        .querySelectorAll("[data-menu-dropdown]")
        .forEach((d) => d.classList.add("hidden"));
      document
        .querySelectorAll("[data-menu-trigger]")
        .forEach((t) => t.setAttribute("aria-expanded", "false"));

      // Open this dropdown
      trigger.setAttribute("aria-expanded", "true");
      dropdown.classList.remove("hidden");
    }
  }

  // Initialize immediately when DOM is ready
  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", initializeDropdown);
  } else {
    initializeDropdown();
  }
})();</script> <div class="hidden block xl:absolute xl:top-12 xl:left-0 bg-rich-black xl:bg-white xl:shadow-lg rounded-xl overflow-hidden xl:rounded-xl xl:overflow-visible z-[9999] xl:z-[9999] transition-all duration-200 ease-in-out w-full xl:w-auto xl:mt-0 xl:min-w-[48rem]" data-menu-dropdown="resources" id="dropdown-resources" data-astro-cid-pqntur4a> <div class="xl:p-0" data-astro-cid-pqntur4a> <div class="flex flex-col xl:flex-row flex-1" data-astro-cid-pqntur4a> <div class="flex flex-col self-stretch xl:w-6/12" data-astro-cid-pqntur4a> <div class="flex flex-col xl:flex-row flex-1 xl:gap-8" style="--column-count: 2;" data-astro-cid-rrixboex> <div class="flex flex-col self-stretch xl:flex-1  " data-astro-cid-rrixboex> <div class="flex-1 flex flex-col" data-astro-cid-rrixboex> <div class="xl:mb-2" data-astro-cid-rrixboex>  <div class="xl:hidden" data-astro-cid-rrixboex> <div class="collapsible-section bg-rich-black xl:bg-transparent" data-collapsible-section="resources-col-0-sub-0" data-astro-cid-q3yarpdy> <button class="btn-new subnav dark-mode w-full text-left justify-start flex justify-between items-center xl:hidden collapsible-trigger" data-astro-cid-q3yarpdy="true" id="trigger-resources-col-0-sub-0" aria-expanded="false" aria-controls="content-resources-col-0-sub-0" type="button"><span class="label"> <span class="label font-medium text-sm leading-[18px] uppercase font-sans" data-astro-cid-q3yarpdy>Learn</span> </span><div class="chevron transition-transform duration-200" aria-hidden="true"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke="currentColor" stroke-width="2" d="M9 4l8 8-8 8" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"/></svg>
</div></button> <div id="content-resources-col-0-sub-0" class="xl:block" data-astro-cid-q3yarpdy> <div class="pl-4" data-astro-cid-q3yarpdy>  <div class="linklist-dark" data-astro-cid-cvxggrkk> <h3 class="text-base mb-4 font-semibold text-white hidden xl:block xl:pl-0 pl-5" data-astro-cid-cvxggrkk> Learn </h3> <ul class="list-none p-0 m-0 grid gap-y-5 mt-4 xl:mt-0" data-astro-cid-cvxggrkk> <li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://blog.sentry.io/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://blog.sentry.io/"> Blog </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/changelog/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://sentry.io/changelog/"> Changelog </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sandbox.sentry.io/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://sandbox.sentry.io/"> Sandbox </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/resources/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://sentry.io/resources/"> Resources </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://syntax.fm/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://syntax.fm/"> Syntax </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/customers/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://sentry.io/customers/"> Customers </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/cookbook/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://sentry.io/cookbook/"> Cookbook </a>  </li>  </ul> </div>  </div> </div> </div>   </div>  <div class="hidden xl:block" data-astro-cid-rrixboex> <div data-astro-cid-cvxggrkk> <h3 class="text-base mb-4 font-semibold text-gray-800 xl:pl-0 pl-5" data-astro-cid-cvxggrkk> Learn </h3> <ul class="list-none p-0 m-0 grid gap-y-5 mt-4 xl:mt-0" data-astro-cid-cvxggrkk> <li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://blog.sentry.io/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://blog.sentry.io/"> Blog </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/changelog/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/changelog/"> Changelog </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sandbox.sentry.io/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sandbox.sentry.io/"> Sandbox </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/resources/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/resources/"> Resources </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://syntax.fm/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://syntax.fm/"> Syntax </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/customers/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/customers/"> Customers </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/cookbook/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/cookbook/"> Cookbook </a>  </li>  </ul> </div> </div> </div> </div> </div><div class="flex flex-col self-stretch xl:flex-1  " data-astro-cid-rrixboex> <div class="flex-1 flex flex-col" data-astro-cid-rrixboex> <div class="xl:mb-2" data-astro-cid-rrixboex>  <div class="xl:hidden" data-astro-cid-rrixboex> <div class="collapsible-section bg-rich-black xl:bg-transparent" data-collapsible-section="resources-col-1-sub-0" data-astro-cid-q3yarpdy> <button class="btn-new subnav dark-mode w-full text-left justify-start flex justify-between items-center xl:hidden collapsible-trigger" data-astro-cid-q3yarpdy="true" id="trigger-resources-col-1-sub-0" aria-expanded="false" aria-controls="content-resources-col-1-sub-0" type="button"><span class="label"> <span class="label font-medium text-sm leading-[18px] uppercase font-sans" data-astro-cid-q3yarpdy>Support</span> </span><div class="chevron transition-transform duration-200" aria-hidden="true"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke="currentColor" stroke-width="2" d="M9 4l8 8-8 8" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"/></svg>
</div></button> <div id="content-resources-col-1-sub-0" class="xl:block" data-astro-cid-q3yarpdy> <div class="pl-4" data-astro-cid-q3yarpdy>  <div class="linklist-dark" data-astro-cid-cvxggrkk> <h3 class="text-base mb-4 font-semibold text-white hidden xl:block xl:pl-0 pl-5" data-astro-cid-cvxggrkk> Support </h3> <ul class="list-none p-0 m-0 grid gap-y-5 mt-4 xl:mt-0" data-astro-cid-cvxggrkk> <li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/contact/enterprise/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://sentry.io/contact/enterprise/"> Contact Us </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://help.sentry.io/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://help.sentry.io/"> Help Center </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://status.sentry.io/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://status.sentry.io/"> Status </a>  </li>  </ul> </div>  </div> </div> </div>   </div>  <div class="hidden xl:block" data-astro-cid-rrixboex> <div data-astro-cid-cvxggrkk> <h3 class="text-base mb-4 font-semibold text-gray-800 xl:pl-0 pl-5" data-astro-cid-cvxggrkk> Support </h3> <ul class="list-none p-0 m-0 grid gap-y-5 mt-4 xl:mt-0" data-astro-cid-cvxggrkk> <li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/contact/enterprise/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/contact/enterprise/"> Contact Us </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://help.sentry.io/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://help.sentry.io/"> Help Center </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://status.sentry.io/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://status.sentry.io/"> Status </a>  </li>  </ul> </div> </div> </div><div class="xl:mb-2" data-astro-cid-rrixboex>  <div class="xl:hidden" data-astro-cid-rrixboex> <div class="collapsible-section bg-rich-black xl:bg-transparent" data-collapsible-section="resources-col-1-sub-1" data-astro-cid-q3yarpdy> <button class="btn-new subnav dark-mode w-full text-left justify-start flex justify-between items-center xl:hidden collapsible-trigger" data-astro-cid-q3yarpdy="true" id="trigger-resources-col-1-sub-1" aria-expanded="false" aria-controls="content-resources-col-1-sub-1" type="button"><span class="label"> <span class="label font-medium text-sm leading-[18px] uppercase font-sans" data-astro-cid-q3yarpdy>Hang out with us</span> </span><div class="chevron transition-transform duration-200" aria-hidden="true"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke="currentColor" stroke-width="2" d="M9 4l8 8-8 8" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"/></svg>
</div></button> <div id="content-resources-col-1-sub-1" class="xl:block" data-astro-cid-q3yarpdy> <div class="pl-4" data-astro-cid-q3yarpdy>  <div class="linklist-dark" data-astro-cid-cvxggrkk> <h3 class="text-base mb-4 font-semibold text-white hidden xl:block xl:pl-0 pl-5" data-astro-cid-cvxggrkk> Hang out with us </h3> <ul class="list-none p-0 m-0 grid gap-y-5 mt-4 xl:mt-0" data-astro-cid-cvxggrkk> <li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/community/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://sentry.io/community/"> Community </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/events/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://sentry.io/events/"> Events </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.shop/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-white hover:text-white" data-link-href="https://sentry.shop/"> Merch </a>  </li>  </ul> </div>  </div> </div> </div>   </div>  <div class="hidden xl:block" data-astro-cid-rrixboex> <div data-astro-cid-cvxggrkk> <h3 class="text-base mb-4 font-semibold text-gray-800 xl:pl-0 pl-5" data-astro-cid-cvxggrkk> Hang out with us </h3> <ul class="list-none p-0 m-0 grid gap-y-5 mt-4 xl:mt-0" data-astro-cid-cvxggrkk> <li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/community/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/community/"> Community </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/events/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/events/"> Events </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.shop/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.shop/"> Merch </a>  </li>  </ul> </div> </div> </div> </div> </div> </div> </div> <div class="hidden xl:block xl:w-6/12  p-6 bg-featured-light rounded-tr-xl rounded-br-xl" data-astro-cid-pqntur4a> <div class="flex flex-col h-full rounded-lg bg-featured-light" data-astro-cid-p5ixv4ed> <div class="flex flex-col gap-4 flex-1" data-astro-cid-p5ixv4ed> <div class="w-full h-[142px] rounded-lg overflow-hidden flex-shrink-0" data-astro-cid-p5ixv4ed> <img src="/astro-assets/nav-icons/intro-demo.png" alt="Bi-weekly Intro to Sentry Demo" width="400" height="142" class="w-full h-full object-cover" loading="lazy" decoding="async" data-astro-cid-p5ixv4ed> </div> <div class="flex flex-col gap-3 flex-1" data-astro-cid-p5ixv4ed> <h3 class="text-xl font-sans leading-tight font-semibold text-gray-900" data-astro-cid-p5ixv4ed> Bi-weekly Intro to Sentry Demo </h3> <p class="text-sm font-sans flex-1 whitespace-pre-line text-gray-700" data-astro-cid-p5ixv4ed> See Sentry in action and learn how errors, performance issues, and context fit together to help you find bugs faster and ship with confidence. Join us bi-weekly on Thursdays! </p> <div class="mt-auto pt-4" data-astro-cid-p5ixv4ed> <a href="https://sentry.io/resources/find-fix-test/" class="btn-new secondary-light" data-astro-cid-p5ixv4ed="true" data-link-href="https://sentry.io/resources/find-fix-test/"> <span class="label">RSVP</span> </a>  </div> </div> </div> </div> </div> </div> </div> </div> <li class="list-none flex-shrink-0 w-full xl:w-auto xl:flex xl:items-center pt-4 xl:pt-0 xl:relative" data-menu-key="docs" id="menu-item-docs-3"> <div class="w-full xl:w-auto flex justify-start xl:justify-center"> <a href="https://docs.sentry.io/" class="btn-new silent w-full xl:w-auto plausible-event-name=Nav+Click+Docs plausible-event-currentUrl=https://sentry.io/terms/" data-menu-trigger="docs" data-link-href="https://docs.sentry.io/"> <span class="label">Docs</span> </a>  </div> </li>  <script nonce="mDmU4cbt0iXImXZ07ByWTnN9mxGPNzYH">(function(){const uniqueId = "menu-item-docs-3";
const menuKey = "docs";

  function initializeDropdown() {
    const menuItem = document.getElementById(uniqueId);

    if (!menuItem || !menuKey) {
      return;
    }

    const trigger = document.querySelector(`[data-menu-trigger="${menuKey}"]`);
    const dropdown = document.querySelector(
      `[data-menu-dropdown="${menuKey}"]`,
    );



    if (trigger && dropdown) {
      trigger.removeEventListener("click", handleDropdownClick);
      trigger.removeEventListener("keydown", handleDropdownKeydown);
      trigger.addEventListener("click", handleDropdownClick);
      trigger.addEventListener("keydown", handleDropdownKeydown);
    }
  }

  function handleDropdownClick(e) {
    const trigger = e.currentTarget;
    const menuKey = trigger.getAttribute("data-menu-trigger");
    const dropdown = document.querySelector(
      `[data-menu-dropdown="${menuKey}"]`,
    );



    if (dropdown) {
      if (trigger.getAttribute("aria-controls")) {
        e.preventDefault();
        e.stopPropagation();
      }

      toggleDropdown(trigger, dropdown, menuKey);
    }
  }

  function handleDropdownKeydown(e) {
    const trigger = e.currentTarget;
    const menuKey = trigger.getAttribute("data-menu-trigger");
    const dropdown = document.querySelector(
      `[data-menu-dropdown="${menuKey}"]`,
    );

    if (dropdown) {
      if (e.key === "Enter" || e.key === " ") {
        e.preventDefault();
        toggleDropdown(trigger, dropdown, menuKey);
      } else if (e.key === "Escape") {
        // Close all dropdowns
        document
          .querySelectorAll("[data-menu-dropdown]")
          .forEach((d) => d.classList.add("hidden"));
        document
          .querySelectorAll("[data-menu-trigger]")
          .forEach((t) => t.setAttribute("aria-expanded", "false"));
      }
    }
  }

  function toggleDropdown(trigger, dropdown, menuKey) {
    const isExpanded = trigger.getAttribute("aria-expanded") === "true";

    if (isExpanded) {
      trigger.setAttribute("aria-expanded", "false");
      dropdown.classList.add("hidden");
    } else {
      // Close all other dropdowns first (accordion behavior)
      document
        .querySelectorAll("[data-menu-dropdown]")
        .forEach((d) => d.classList.add("hidden"));
      document
        .querySelectorAll("[data-menu-trigger]")
        .forEach((t) => t.setAttribute("aria-expanded", "false"));

      // Open this dropdown
      trigger.setAttribute("aria-expanded", "true");
      dropdown.classList.remove("hidden");
    }
  }

  // Initialize immediately when DOM is ready
  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", initializeDropdown);
  } else {
    initializeDropdown();
  }
})();</script>  <li class="list-none flex-shrink-0 w-full xl:w-auto xl:flex xl:items-center pt-4 xl:pt-0 xl:relative" data-menu-key="pricing" id="menu-item-pricing-4"> <div class="w-full xl:w-auto flex justify-start xl:justify-center"> <a href="https://sentry.io/pricing/" class="btn-new silent w-full xl:w-auto plausible-event-name=Nav+Click+Pricing plausible-event-currentUrl=https://sentry.io/terms/" data-menu-trigger="pricing" data-link-href="https://sentry.io/pricing/"> <span class="label">Pricing</span> </a>  </div> </li>  <script nonce="mDmU4cbt0iXImXZ07ByWTnN9mxGPNzYH">(function(){const uniqueId = "menu-item-pricing-4";
const menuKey = "pricing";

  function initializeDropdown() {
    const menuItem = document.getElementById(uniqueId);

    if (!menuItem || !menuKey) {
      return;
    }

    const trigger = document.querySelector(`[data-menu-trigger="${menuKey}"]`);
    const dropdown = document.querySelector(
      `[data-menu-dropdown="${menuKey}"]`,
    );



    if (trigger && dropdown) {
      trigger.removeEventListener("click", handleDropdownClick);
      trigger.removeEventListener("keydown", handleDropdownKeydown);
      trigger.addEventListener("click", handleDropdownClick);
      trigger.addEventListener("keydown", handleDropdownKeydown);
    }
  }

  function handleDropdownClick(e) {
    const trigger = e.currentTarget;
    const menuKey = trigger.getAttribute("data-menu-trigger");
    const dropdown = document.querySelector(
      `[data-menu-dropdown="${menuKey}"]`,
    );



    if (dropdown) {
      if (trigger.getAttribute("aria-controls")) {
        e.preventDefault();
        e.stopPropagation();
      }

      toggleDropdown(trigger, dropdown, menuKey);
    }
  }

  function handleDropdownKeydown(e) {
    const trigger = e.currentTarget;
    const menuKey = trigger.getAttribute("data-menu-trigger");
    const dropdown = document.querySelector(
      `[data-menu-dropdown="${menuKey}"]`,
    );

    if (dropdown) {
      if (e.key === "Enter" || e.key === " ") {
        e.preventDefault();
        toggleDropdown(trigger, dropdown, menuKey);
      } else if (e.key === "Escape") {
        // Close all dropdowns
        document
          .querySelectorAll("[data-menu-dropdown]")
          .forEach((d) => d.classList.add("hidden"));
        document
          .querySelectorAll("[data-menu-trigger]")
          .forEach((t) => t.setAttribute("aria-expanded", "false"));
      }
    }
  }

  function toggleDropdown(trigger, dropdown, menuKey) {
    const isExpanded = trigger.getAttribute("aria-expanded") === "true";

    if (isExpanded) {
      trigger.setAttribute("aria-expanded", "false");
      dropdown.classList.add("hidden");
    } else {
      // Close all other dropdowns first (accordion behavior)
      document
        .querySelectorAll("[data-menu-dropdown]")
        .forEach((d) => d.classList.add("hidden"));
      document
        .querySelectorAll("[data-menu-trigger]")
        .forEach((t) => t.setAttribute("aria-expanded", "false"));

      // Open this dropdown
      trigger.setAttribute("aria-expanded", "true");
      dropdown.classList.remove("hidden");
    }
  }

  // Initialize immediately when DOM is ready
  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", initializeDropdown);
  } else {
    initializeDropdown();
  }
})();</script>  </ul> <div id="desktopAuthContainer" class="hidden xl:flex xl:flex-row xl:items-center xl:flex-shrink-0 xl:gap-2" data-astro-cid-igvqhh5r> <a href="https://sentry.io/auth/login/" class="btn-new silent w-full xl:w-auto plausible-event-name=Nav+Click+SignIn plausible-event-currentUrl=https://sentry.io/terms/" data-astro-cid-igvqhh5r="true" data-link-href="https://sentry.io/auth/login/"> <span class="label">
Sign In
</span> </a>  <a href="https://sentry.io/demo/" class="btn-new secondary-light w-full xl:w-auto plausible-event-name=Nav+Click+Demo plausible-event-currentUrl=https://sentry.io/terms/" data-astro-cid-igvqhh5r="true" data-link-href="https://sentry.io/demo/"> <span class="label">
Get Demo
</span> </a>  <a href="https://sentry.io/signup/" class="btn-new primary-light w-full xl:w-auto plausible-event-name=Nav+Click+SignUp plausible-event-currentUrl=https://sentry.io/terms/" data-astro-cid-igvqhh5r="true" data-link-href="https://sentry.io/signup/"> <span class="label">
Get Started
</span> </a>  </div> </nav>  </div> </header>  <script nonce="mDmU4cbt0iXImXZ07ByWTnN9mxGPNzYH" type="module">(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"c375fea9805680a06c17231d4eef06f831259223"};var n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="f7f4a567-183f-45b0-9b4e-6d05b6da550b",e._sentryDebugIdIdentifier="sentry-dbid-f7f4a567-183f-45b0-9b4e-6d05b6da550b")}catch{}})();let d=!1;function r(){const e=document.getElementById("menu-toggle-button");document.getElementById("mobileMenu"),e?(e.removeEventListener("click",i),e.addEventListener("click",i)):console.error("Menu toggle button not found!")}function i(e){e.preventDefault(),e.stopPropagation();const n=e.currentTarget,t=document.getElementById("mobileMenu"),o=document.querySelector("header");d=!d,n.setAttribute("aria-expanded",String(d)),t?d?(t.classList.add("nav-expanded"),o?.classList.add("nav-expanded")):(t.classList.remove("nav-expanded"),o?.classList.remove("nav-expanded")):console.error("Mobile menu element not found during toggle!")}function s(e){const n=e.target;!n.closest("[data-menu-trigger]")&&!n.closest("[data-menu-dropdown]")&&(document.querySelectorAll("[data-menu-dropdown]").forEach(t=>t.classList.add("hidden")),document.querySelectorAll("[data-menu-trigger]").forEach(t=>t.setAttribute("aria-expanded","false")))}function u(e){if(e.key==="Escape"){const n=document.getElementById("menu-toggle-button"),t=document.getElementById("mobileMenu"),o=document.querySelector("header");d&&(d=!1,n.setAttribute("aria-expanded","false"),t?.classList.remove("nav-expanded"),o?.classList.remove("nav-expanded")),document.querySelectorAll("[data-menu-dropdown]").forEach(a=>a.classList.add("hidden")),document.querySelectorAll("[data-menu-trigger]").forEach(a=>a.setAttribute("aria-expanded","false"))}}function c(){function e(){r(),document.addEventListener("click",s),document.addEventListener("keydown",u)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e):e()}c();const l=document.getElementById("sentry-logo");l&&l.addEventListener("contextmenu",e=>{e.preventDefault(),e.stopPropagation(),window.location.href="https://sentry.io/branding/"});</script> <main id="main-content" role="main" aria-label="Main content" class="transition-colors duration-200 bg-white"> <section class="relative overflow-x-clip z-0 pt-8 md:pt-16 pb-8 md:pb-16  policy-page-layout" data-astro-cid-uy225l2s="true" style="background-color:#f6f6f8">   <div class="container" data-astro-cid-bdd4tvdo style="--xs: 0%;--sm: 576px;--md: 768px;--lg: 992px;--xl: 1152px;">   <div class="flex flex-wrap items-stretch justify-start flex-row -mx-8">  <div class="flex-grid-cell px-8 policy-sidebar" style="--base-width:100%;--lg-width:33.33333333333333%" data-astro-cid-nmskivc4>  <a href="/legal/" class="btn silent compensate-left" data-astro-cid-uy225l2s="true" data-link-href="/legal/"> <div class="icon" aria-hidden="true"><svg viewBox="0 0 24 24" width="24" height="24" xmlns="http://www.w3.org/2000/svg"><path stroke="currentColor" stroke-width="2" d="M15 4l-8 8 8 8" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"/></svg>
</div><span class="label">
Back to all legal docs
</span> </a>  <nav class="sidebar-nav" aria-label="Policy navigation" data-astro-cid-uy225l2s> <ul class="policy-list" data-astro-cid-uy225l2s> <li data-astro-cid-uy225l2s> <a href="/legal/baa/" data-astro-cid-uy225l2s>Business Associate Amendment</a>  </li><li data-astro-cid-uy225l2s> <a href="/legal/dpa/" data-astro-cid-uy225l2s>Data Processing Addendum</a>  </li><li data-astro-cid-uy225l2s> <a href="/privacy/" data-astro-cid-uy225l2s>Privacy Policy</a>  </li><li data-astro-cid-uy225l2s> <span class="current-policy" data-astro-cid-uy225l2s>Terms of Service</span>  </li> </ul> </nav> <div class="sidebar-illustrations" data-astro-cid-uy225l2s> <div class="illustration" style="background-image: url(/_astro/sentry-reading-1.BUWpgwDE.png)" data-astro-cid-uy225l2s></div><div class="illustration" style="background-image: url(/_astro/sentry-reading-2.moSeueb1.png)" data-astro-cid-uy225l2s></div><div class="illustration" style="background-image: url(/_astro/sentry-reading-3.Df6sm0qI.png)" data-astro-cid-uy225l2s></div><div class="illustration" style="background-image: url(/_astro/sentry-reading-4.InYQ-esd.png)" data-astro-cid-uy225l2s></div><div class="illustration" style="background-image: url(/_astro/sentry-reading-5.BeGOZ20k.png)" data-astro-cid-uy225l2s></div> </div>  </div> <div class="flex-grid-cell px-8 content-cell" style="--base-width:100%;--lg-width:66.66666666666666%" data-astro-cid-nmskivc4>  <div class="policy-wrapper" data-astro-cid-uy225l2s> <h1>Terms of Service</h1> <p class="version-message" data-astro-cid-uy225l2s>
Version  <span class="version-picker-wrapper" data-astro-cid-uy225l2s> <span class="version-picker-faceplate" aria-hidden="true" data-astro-cid-uy225l2s>3.0.0 (Latest version)</span> <select class="version-picker-select" aria-label="old versions picker" name="old-versions" id="old-versions" data-latest-slug="/legal/terms/3.0.0/" data-latest-nav-path="/terms/" data-policy-name="terms" data-astro-cid-uy225l2s> <option value="/legal/terms/3.0.0/" selected data-version="3.0.0" data-date="February 12, 2024" data-astro-cid-uy225l2s> 3.0.0  (Latest version - February 12, 2024) </option><option value="/legal/terms/2.0.0/" data-version="2.0.0" data-date="December 29, 2022" data-astro-cid-uy225l2s> 2.0.0  (December 29, 2022) </option><option value="/legal/terms/1.2.0/" data-version="1.2.0" data-date="February 5, 2020" data-astro-cid-uy225l2s> 1.2.0  (February 5, 2020) </option><option value="/legal/terms/1.1.0/" data-version="1.1.0" data-date="November 29, 2018" data-astro-cid-uy225l2s> 1.1.0  (November 29, 2018) </option><option value="/legal/terms/1.0.0/" data-version="1.0.0" data-date="December 6, 2017" data-astro-cid-uy225l2s> 1.0.0  (December 6, 2017) </option> </select> </span>  
of This Agreement was created on February 12, 2024.
 </p> <div class="policy-content terms-counters" data-astro-cid-uy225l2s>    <p>These Sentry Terms of Service (“<strong>Agreement</strong>”) are entered into by and between Functional Software, Inc. d/b/a Sentry (“<strong>Sentry</strong>” or “<strong>we</strong>”) and the entity or person placing an order for or accessing the Service (“<strong>Customer</strong>” or “<strong>you</strong>”). If you are accessing or using the Service on behalf of your company, you represent that you are authorized to accept this Agreement on behalf of your company, and all references to “you” or “Customer” in this Agreement mean your company.</p>
<p>If you have a separate written agreement with Sentry for your use of the Service, this Agreement will not apply to you.</p>
<p>This Agreement permits Customer to purchase subscriptions to the Service and other services from Sentry pursuant to Sentry ordering documents, online registration, order descriptions or order confirmations referencing this Agreement (“<strong>Orders</strong>”) and sets forth the basic terms and conditions under which those products and services will be delivered. This Agreement will govern Customer’s initial purchase on the Effective Date as well as any future purchases made by Customer that reference this Agreement. Certain capitalized terms are defined in Section 20 (Definitions) and others are defined contextually in this Agreement.</p>
<p>The “<strong>Effective Date</strong>” of this Agreement is the date which is the earlier of (a) Customer’s initial access to any Service through any online provisioning, registration or order process or (b) the effective date of the first Order referencing this Agreement.</p>
<p><strong>Modifications to this Agreement</strong>: From time to time, Sentry may modify this Agreement. Unless otherwise specified by Sentry, changes become effective for Customer upon renewal of Customer’s current Subscription Term or entry into a new Order. Sentry will use reasonable efforts to notify Customer of the changes through communications via Customer’s account, email or other means. Customer may be required to click to accept or otherwise agree to the modified Agreement before renewing a Subscription Term or entering into a new Order, and in any event, continued use of the Service after the updated version of this Agreement goes into effect will constitute Customer’s acceptance of such updated version. If Sentry specifies that changes to this Agreement will take effect prior to Customer’s next renewal or order (such as for legal compliance or product change reasons) and Customer objects to such changes, Customer may terminate the applicable Subscription Term and receive as its sole remedy a refund of any fees Customer has pre-paid for use of the applicable Service for the terminated portion of the Subscription Term.</p>
<p><strong>BY INDICATING YOUR ACCEPTANCE OF THIS AGREEMENT OR ACCESSING OR USING THE SERVICE, YOU ARE AGREEING TO BE LEGALLY BOUND BY ALL TERMS, CONDITIONS AND NOTICES CONTAINED OR REFERENCED IN THIS AGREEMENT. IF YOU DO NOT AGREE TO THIS AGREEMENT OR ARE UNDER THE AGE OF 16, PLEASE DO NOT USE THE SERVICE.</strong></p>
<ol>
<li>
<p><strong>Overview</strong>. Sentry offers a suite of software-as-a-service solutions designed to identify, monitor and alert Customer to problems that are occurring in a Customer Application. These Services include code coverage reporting, error monitoring, performance monitoring and other application monitoring solutions. Customer uses SDKs to bundle Service Data about the Customer Application and send that Service Data to the Service. Customer may either create its own SDKs or select from reference SDKs that Sentry makes separately available for different software languages, frameworks and libraries. Customer controls what Service Data (including what, if any, personal information) are sent to and processed by the Service by configuring SDKs and the Service. Customer may also elect to import and export Service Data between the Service and certain Third-Party Platforms (e.g., messaging services, code repositories and project management solutions) through supported integrations.</p>
</li>
<li>
<p><strong>The Service</strong>.</p>
<ol>
<li>
<p><em>Permitted Use</em>. During the Subscription Term, Customer may access and use the Service only for its internal business purposes in accordance with any Scope of Use and the Documentation, the AUP and this Agreement.</p>
</li>
<li>
<p><em>Users</em>. Only Users may access or use the Service. The Service is not intended for and should not be used by anyone under the age of 16. Customer must ensure that all its Users are over 16 years old. Each User must keep login credentials confidential and not share them with anyone else. Customer is responsible for its Users’ compliance with this Agreement and actions taken through their accounts (excluding misuse of accounts caused by Sentry’s breach of this Agreement). Customer will promptly notify Sentry if it becomes aware of any compromise of any User login credentials. Sentry uses User account information as described in its Privacy Policy, but the Privacy Policy does not apply to Service Data.</p>
</li>
<li>
<p><em>Restrictions</em>. Customer will not (and will not authorize anyone else to) do any of the following: (a) provide access to (except for Users), distribute, sell or sublicense the Service to a third party, (b) use the Service on behalf of, or to provide any product or service (except for Customer Applications) to, third parties, (c) use the Service to develop a similar or competing product or service, (d) reverse engineer, decompile, disassemble or seek to access the source code or non-public APIs to the Service, except to the extent expressly permitted by Law (and then only with prior notice to Sentry), (e) modify or create derivative works of the Service or copy any element of the Service, (f) remove or obscure any proprietary notices in the Service, (g) publish benchmarks or performance information about the Service, (h) interfere with the Service’s operation, circumvent its access restrictions or conduct any security or vulnerability test of the Service or (i) transmit any viruses or other harmful materials to the Service.</p>
</li>
<li>
<p><em>SDKs</em>. In order to use the Service, Customer may be required to use SDKs to send Service Data about Customer Applications to the Service. Customer may create its own SDKs or select from reference SDKs that Sentry makes separately available in public repositories (“<strong>Reference SDKs</strong>”). Customer’s use of Reference SDKs is subject to the applicable license terms provided with such Reference SDKs and not the terms of this Agreement. Customer’s failure to properly implement SDKs may cause certain features of the Service to be unavailable or cease to function. The Service excludes SDKs, and Sentry shall have no warranty, support, indemnity or other obligations with respect to SDKs under this Agreement.</p>
</li>
</ol>
</li>
<li>
<p><strong>Support</strong>. If Customer has purchased a paid subscription to the Service, unless otherwise specified in an Order, during the Subscription Term Sentry will provide Support through Sentry’s online support page for the relevant service, or by email at the email address for the relevant Service, currently <a href="mailto:support@sentry.io">support@sentry.io</a> and <a href="mailto:support@codecov.io">support@codecov.io</a>, respectively. Sentry will use reasonable efforts to respond to Support requests during business hours. For free or unpaid subscriptions to the Service, please visit our online support page for any support-related questions.</p>
</li>
<li>
<p><strong>Data</strong>.</p>
<ol>
<li>
<p><em>Submission of Service Data</em>. Customer controls the types and amounts of Service Data (including what, if any, personal information is included) that are submitted to the Service through Customer’s configuration and use of SDKs, the Service and Third-Party Platforms. Customer is responsible for its configuration of SDKs and the Service (including any decision not to use available data scrubbing tools or other privacy or security settings or features).</p>
</li>
<li>
<p><em>Data Use</em>.</p>
<ol>
<li>
<p><em>Service Data</em>. Subject to this Agreement, and solely to the extent necessary to provide, maintain and improve the Service and Support to Customer, Customer grants Sentry the non-exclusive, worldwide right, during the term of this Agreement, to access, use, process, copy, perform, store, export, transmit and display Service Data. Solely to the extent reformatting Service Data for display in the Service constitutes a modification or derivative work, the foregoing license also includes the right to modify and create derivative works of Service Data. In addition to the rights granted above, Sentry may use Non-Identifying Data for Additional Uses. Only to the extent Customer so authorizes via its configuration of the Service, Sentry may use other elements of Service Data for Additional Uses; provided, however, that Sentry will not disclose any Service Data used in this manner externally unless it has been Aggregated or Anonymized.</p>
</li>
<li>
<p><em>Usage Data</em>. Notwithstanding anything to the contrary in the Agreement, Sentry may collect and use Usage Data to operate, improve and support the Service and for Additional Uses.  Sentry will not disclose Usage Data externally, including in benchmarks or reports, unless it has been Aggregated or Anonymized.</p>
</li>
</ol>
</li>
<li>
<p><em>Security</em>. Sentry uses reasonable technical and organizational measures designed to protect the Service and Service Data as described in the Security Policy.</p>
</li>
<li>
<p><em>Personal Data</em>. Unless Customer and Sentry have entered into a DPA, Customer will not submit any Personal Data to the Service.</p>
</li>
<li>
<p><em>Protected Health Information</em>. Sentry makes a BAA available for customers with subscriptions to eligible plans. Unless Customer’s then-current subscription is to an eligible plan and has entered into a BAA with Sentry, Customer will not submit any PHI to the Service.</p>
</li>
<li>
<p><em>Location</em>. Sentry will store Service Data in the region selected by Customer through its configuration of the Service. In addition, Sentry may process Service Data in the United States or in countries where its Affiliates and third-party sub-processors are located.</p>
</li>
<li>
<p><em>Data Export and Deletion</em>. During the Subscription Term, Customer may export or delete its Service Data from the Service using the export and deletion features described in the Documentation. After the Subscription Term, Sentry will delete Service Data in accordance with its standard schedule and procedures.</p>
</li>
</ol>
</li>
<li>
<p><strong>Customer Obligations</strong>.</p>
<ol>
<li>
<p><em>Generally</em>. Customer is responsible for all Service Data, including its accuracy, and agrees to comply with Laws and the Documentation in using the Service. Customer represents and warrants that it has made all disclosures and has all rights, consents and permissions necessary to use Service Data with the Service and grant Sentry the rights in Section 4.2 (Data Use), all without violating or infringing Laws, third-party rights (including intellectual property, publicity or privacy rights) or any terms or privacy policies that apply to Service Data.</p>
</li>
<li>
<p><em>No Sensitive Personal Information</em>. Customer must not use the Service with Sensitive Personal Information (except as permitted in accordance with Section 4.5 (Protected Health Information). Except as set forth in a BAA, Customer acknowledges that the Service is not intended to meet any legal obligations for these uses, including HIPAA requirements, and that Sentry is not a Business Associate as defined under HIPAA. Notwithstanding anything else in this Agreement, except for PHI submitted in accordance with Section 4.5 (Protected Health Information), Sentry has no liability for Sensitive Personal Information.</p>
</li>
</ol>
</li>
<li>
<p><strong>Suspension of Service</strong>. Sentry may suspend Customer’s access to the Service and related services: (i) if Customer breaches Section 2.3 (Restrictions) or Section 5 (Customer Obligations), (ii) if Customer’s account is 30 days or more overdue, (iii) if Customer’s actions risk harm to other customers or the security, availability or integrity of the Service (including by regularly exceeding any applicable rate limits) or (iv) if Customer fails to comply with the AUP. Where practicable, Sentry will use reasonable efforts to provide Customer with prior notice of the suspension. Once Customer resolves the issue requiring suspension, Sentry will promptly restore Customer’s access to the Service in accordance with this Agreement.</p>
</li>
<li>
<p><strong>Third-Party Platforms</strong>. Certain features or functionality of the Service may require Customer to use Third-Party Platforms. Use of Third-Party Platforms is subject to Customer’s agreement with the relevant provider and not this Agreement. Sentry does not control and has no liability for Third-Party Platforms, including their security, functionality, operation, availability or interoperability or how the Third-Party Platforms or their providers use Service Data. If Customer enables a Third-Party Platform with the Service, Sentry may access and exchange Service Data with the Third-Party Platform on Customer’s behalf.</p>
</li>
<li>
<p><strong>No Professional Services</strong>. Sentry does not provide any professional, consulting, work-for-hire, custom development or similar services of any type.</p>
</li>
<li>
<p><strong>Commercial Terms</strong>.</p>
<ol>
<li>
<p><em>Subscription Term</em>. Unless otherwise set forth on the applicable Order, each Subscription Term will automatically renew for an equivalent period unless either party gives the other party notice of non-renewal before the current Subscription Term ends (with respect to Customer, in accordance with Section 9.5 below).</p>
</li>
<li>
<p><em>Fees and Taxes</em>. Fees are as described in each Order. Fees are invoiced on the schedule in the Order. Unless the Order provides otherwise, all fees are due within 30 days of the invoice date.  Fees for renewal Subscription Terms are at Sentry’s then-current rates, regardless of any discounted pricing in a prior Order. Except as expressly otherwise set forth herein, all fees are non-refundable. All Fees are exclusive of any applicable sales or other taxes or similar fees imposed by any government authority. Customer will (a) pay or reimburse all such taxes and fees (including any interest or penalties), if any, due, based on or measured by amounts payable by Customer under this Agreement (excluding taxes based on Sentry’s net income) or (b) furnish Sentry with evidence acceptable to the applicable government authority to sustain an exemption therefrom. If Customer is required by Laws to deduct withholding taxes from payments to Sentry, Customer will increase the amount payable to Sentry as necessary so that after making all required deductions and withholdings, Sentry receives and retains (free from any tax liability) an amount equal to the amount it would have received had no such deductions or withholdings been made.</p>
</li>
<li>
<p><em>On Demand</em>. If Customer purchases a Service with on-demand usage and exceeds the applicable Scope of Use specified in the Order in a given month, Customer agrees to pay Sentry additional on-demand fees for such excess usage (“<strong>On Demand Usage</strong>”) monthly in arrears at the then-current price for On Demand Usage.</p>
</li>
<li>
<p><em>Payment via Credit Card</em>. If Customer is purchasing the Service via credit card, debit card or other payment card (“<strong>Credit Card</strong>”), the following terms apply:</p>
<ol>
<li>
<p><em>Recurring Billing Authorization</em>. By providing Credit Card information and agreeing to purchase the Service, Customer hereby authorizes Sentry (or its designee) to automatically charge Customer’s Credit Card on the same date of each calendar month (or the closest prior date, if there are fewer days in a particular month) during the Subscription Term for all fees accrued as of that date (if any) in accordance with the applicable Order. Customer acknowledges and agrees that the amount billed and charged each month may vary depending on Customer’s use of the Service and may include fees for On Demand Usage for the prior month.</p>
</li>
<li>
<p><em>Foreign Transaction Fees</em>. Customer acknowledges that for certain Credit Cards, the issuer of Customer’s Credit Card may charge a foreign transaction fee or other charges.</p>
</li>
<li>
<p><em>Invalid Payment</em>. If a payment is not successfully settled due to expiration of a Credit Card, insufficient funds, or otherwise, Customer remains responsible for any amounts not remitted to Sentry and Sentry may, in its sole discretion, either (i) invoice Customer directly for the deficient amount, (ii) continue billing the Credit Card once it has been updated by Customer (if applicable) or (iii) terminate this Agreement.</p>
</li>
<li>
<p><em>Changing Credit Card Information</em>. At any time, Customer may change its Credit Card information by entering updated Credit Card information in its account settings.</p>
</li>
<li>
<p><em>Payment of Outstanding Fees</em>. Upon any termination, expiration or cancellation of a Subscription Term, Sentry will charge Customer’s Credit Card (or invoice Customer directly) for any outstanding fees for Customer’s use of the Service during the Subscription Term (including any fees for On Demand Usage), after which Sentry will not charge Customer’s Credit Card for any additional fees.</p>
</li>
</ol>
</li>
<li>
<p><em>Cancellation</em>. <strong>If Customer does not want to renew a subscription, Customer must cancel its account(s)/subscription(s) from its account settings.</strong> An email or phone request to cancel Customer’s account is not considered notice of non-renewal. Any cancellation will take effect only at the end of Customer’s then-current Subscription Term, and Customer will continue to owe all fees (including, if applicable, monthly subscription fees and fees for any On Demand Usage) for the duration of the then-current Subscription Term. Notwithstanding the foregoing, Sentry reserves the right, at its sole and absolute discretion, to permit Customer to cancel its subscription immediately without further liability by making a lump-sum payment to Sentry that is equal to the upcoming three (3) months of subscription fees that Customer would otherwise have owed Sentry.</p>
</li>
<li>
<p><em>Upgrades and Downgrades</em>. If Customer upgrades its plan or Scope of Use, we will immediately bill Customer for the applicable subscription fees. Downgrades will go into effect at the end of Customer’s then-current Subscription Term. There will be no refunds or credits for partial months of service, upgrade/downgrade refunds, or refunds for months unused with an open account. Downgrading account(s) may cause the loss of Service Data, features, or capacity of such account(s). We do not accept any liability for such loss.</p>
</li>
</ol>
</li>
<li>
<p><strong>Disclaimers. The Service, Support and all related Sentry services are provided “AS IS”. Sentry and its suppliers make no other warranties, whether express, implied, statutory or otherwise, including warranties of merchantability, fitness for a particular purpose, title or noninfringement. Unless otherwise expressly stated in this Agreement, Sentry does not warrant that Customer’s use of the Service will be uninterrupted or error-free, that Sentry will review Service Data for accuracy or that it will maintain Service Data without loss. Sentry is not liable for delays, failures or problems inherent in use of the Internet and electronic communications or other systems outside Sentry’s control or for use of the Service in High Risk Activities. Customer may have other statutory rights, but any statutorily required warranties will be limited to the shortest legally permitted period. Sentry does not warrant that using the Service will enable Customer to identify all issues or bugs in Customer Applications or that Customer will be able to correct issues or bugs reported by the Service. Sentry makes no warranties regarding the performance of Customer Applications and, as between the parties, Customer is solely responsible for Customer Applications.</strong></p>
</li>
<li>
<p><strong>Term and Termination</strong>.</p>
<ol>
<li>
<p><em>Term</em>. This Agreement starts on the Effective Date and continues until expiration, cancellation or termination of all Subscription Terms.</p>
</li>
<li>
<p><em>Termination</em>. Either party may terminate this Agreement (including all Orders) if the other party (a) fails to cure a material breach of this Agreement (including a failure to pay fees) within 30 days after notice, (b) ceases operation without a successor or (c) seeks protection under a bankruptcy, receivership, trust deed, creditors’ arrangement, composition or comparable proceeding, or if such a proceeding is instituted against that party and not dismissed within 60 days.</p>
</li>
<li>
<p><em>Effect of Termination</em>. Upon expiration or termination of this Agreement or an Order, Customer’s access to the Service will cease. At the disclosing party’s request upon expiration or termination of this Agreement, the receiving party will delete all of the disclosing party’s Confidential Information (excluding Service Data, which is addressed in Section 4.7). Service Data and other Confidential Information may be retained in the receiving party’s standard backups after deletion but will remain subject to this Agreement’s confidentiality restrictions.</p>
</li>
<li>
<p><em>Survival</em>. These Sections survive expiration or termination of this Agreement: 2.3 (Restrictions), 4.2 (Data Use), 5 (Customer Obligations), 9.2 (Fees and Taxes), 9.3 (On Demand), 9.4 (Payment via Credit Card) 10.3 (Disclaimers), 11.3 (Effect of Termination), 11.4 (Survival), 12 (Ownership), 13 (Limitations of Liability), 14 (Indemnification), 15 (Confidentiality), 16 (Required Disclosures), 19 (General Terms) and 20 (Definitions). Except where an exclusive remedy is provided, exercising a remedy under this Agreement, including termination, does not limit other remedies a party may have.</p>
</li>
</ol>
</li>
<li>
<p><strong>Ownership</strong>. Neither party grants the other any rights or licenses not expressly set out in this Agreement. Except for Sentry’s use rights in this Agreement, between the parties Customer retains all intellectual property and other rights in Service Data provided to Sentry. Except for Customer’s use rights in this Agreement, Sentry and its licensors retain all intellectual property and other rights in the Service and related Sentry technology, templates, formats, machine learning or large language models and dashboards, including any modifications or improvements to these items made by Sentry. If Customer provides Sentry with feedback or suggestions regarding the Service or other Sentry offerings, Sentry may use the feedback or suggestions without restriction or obligation.</p>
</li>
<li>
<p><strong>Limitations of Liability</strong>.</p>
<ol>
<li>
<p><em>Consequential Damages Waiver</em>. <strong>Except for Excluded Claims, neither party (nor its suppliers) will have any liability arising out of or related to this Agreement for any loss of use, lost data, lost profits, failure of security mechanisms, interruption of business or any indirect, special, incidental, reliance or consequential damages of any kind, even if informed of their possibility in advance.</strong></p>
</li>
<li>
<p><em>Liability Cap</em>. <strong>Except for Excluded Claims, each party’s (and its suppliers’) entire liability arising out of or related to this Agreement will not exceed in aggregate the amounts paid or payable by Customer to Sentry during the prior 12 months under this Agreement.</strong></p>
</li>
<li>
<p><em>Excluded Claims</em>. “<strong>Excluded Claims</strong>” means: (a) Customer’s breach of Sections 2.3 (Restrictions) or 5 (Customer Obligations), (b) Customer’s breach of Section 15 (Confidentiality) or (c) amounts payable to third parties under the indemnifying party’s obligations in Section 14 (Indemnification).</p>
</li>
<li>
<p><em>Nature of Claims and Failure of Essential Purpose</em>. The waivers and limitations in this Section 13 apply regardless of the form of action, whether in contract, tort (including negligence), strict liability or otherwise and will survive and apply even if any limited remedy in this Agreement fails of its essential purpose.</p>
</li>
</ol>
</li>
<li>
<p><strong>Indemnification</strong>.</p>
<ol>
<li>
<p><em>Indemnification by Customer</em>. Customer will defend Sentry from and against any third-party claim to the extent resulting from Service Data or Customer’s breach or alleged breach of Section 5 (Customer Obligations) and will indemnify and hold harmless Sentry against any damages or costs awarded against Sentry (including reasonable attorneys’ fees) or agreed in settlement by Customer resulting from the claim.</p>
</li>
<li>
<p><em>Procedures</em>. The indemnifying party’s obligations in this Section 14 are subject to receiving (a) prompt notice of the claim, (b) the exclusive right to control and direct the investigation, defense and settlement of the claim and (c) all reasonably necessary cooperation of the indemnified party, at the indemnifying party’s expense for reasonable out-of-pocket costs. The indemnifying party may not settle any claim without the indemnified party’s prior consent if settlement would require the indemnified party to admit fault or take or refrain from taking any action (other than relating to use of the Service, when Sentry is the indemnifying party). The indemnified party may participate in a claim with its own counsel at its own expense.</p>
</li>
</ol>
</li>
<li>
<p><strong>Confidentiality</strong>.</p>
<ol>
<li>
<p><em>Definition</em>. “<strong>Confidential Information</strong>” means information disclosed to the receiving party under this Agreement that is designated by the disclosing party as proprietary or confidential or that should be reasonably understood to be proprietary or confidential due to its nature and the circumstances of its disclosure. Sentry’s Confidential Information includes the terms and conditions of this Agreement and any technical or performance information about the Service. Customer’s Confidential Information includes Service Data.</p>
</li>
<li>
<p><em>Obligations</em>. As a receiving party, each party will (a) hold Confidential Information in confidence and not disclose it to third parties except as permitted in this Agreement, including Section 4.2 (Data Use), and (b) only use Confidential Information to fulfill its obligations and exercise its rights in this Agreement. The receiving party may disclose Confidential Information to its employees, agents, contractors and other representatives having a legitimate need to know (including, for Sentry, the subcontractors referenced in Section 19.9), provided it remains responsible for their compliance with this Section 15 and they are bound to confidentiality obligations no less protective than this Section 15.</p>
</li>
<li>
<p><em>Exclusions</em>. These confidentiality obligations do not apply to information that the receiving party can document (a) is or becomes public knowledge through no fault of the receiving party, (b) it rightfully knew or possessed prior to receipt under this Agreement, (c) it rightfully received from a third party without breach of confidentiality obligations or (d) it independently developed without using the disclosing party’s Confidential Information.</p>
</li>
<li>
<p><em>Remedies</em>. Unauthorized use or disclosure of Confidential Information may cause substantial harm for which damages alone are an insufficient remedy. Each party may seek appropriate equitable relief, in addition to other available remedies, for breach or threatened breach of this Section 15.</p>
</li>
</ol>
</li>
<li>
<p><strong>Required Disclosures</strong>. Nothing in this Agreement prohibits either party from making disclosures, including of Service Data and other Confidential Information, if required by Law, subpoena or court order, provided (if permitted by Law) it notifies the other party in advance and cooperates in any effort to obtain confidential treatment.</p>
</li>
<li>
<p><strong>No-Charge Products</strong>. If Customer receives access to the Service or Service features on a no-charge, free or trial basis or as an alpha, beta or early access offering (“<strong>No-Charge Products</strong>”), use of such No-Charge Products is permitted only during the period designated by Sentry (or if not designated, 30 days). No-Charge Products are optional and either party may terminate No-Charge Products at any time for any reason. No-Charge Products may be inoperable, incomplete or include features that Sentry may never release, and their features and performance information are Sentry’s Confidential Information. <strong>Notwithstanding anything else in this Agreement, Sentry provides no warranty, indemnity, service levels or Support for No-Charge Products and its liability for No-Charge Products will not exceed US$50.</strong></p>
</li>
<li>
<p><strong>Publicity</strong>. Neither party may publicly announce this Agreement except with the other party’s prior consent or as required by Laws. However, Sentry may include Customer and its trademarks in Sentry’s customer lists and promotional materials, issue a press release identifying Customer as a Sentry customer, inform other potential customers that Customer is a Sentry customer and identify Customer as a customer in other forms of publicity (including, without limitation, case studies and blog posts), but will cease such use at Customer’s written request.</p>
</li>
<li>
<p><strong>General Terms</strong>.</p>
<ol>
<li>
<p><em>Assignment</em>. Neither party may assign this Agreement without the prior consent of the other party, except that either party may assign this Agreement in connection with a merger, reorganization, acquisition or other transfer of all or substantially all its assets or voting securities (each, a “<strong>Change of Control</strong>”). If Customer assigns this Agreement in a Change of Control permitted under this Section, Customer will update all necessary details in Customer’s account settings. Any non-permitted assignment is void. This Agreement will bind and inure to the benefit of each party’s permitted successors and assigns.</p>
</li>
<li>
<p><em>Governing Law, Jurisdiction and Venue</em>. This Agreement is governed by the laws of the State of California and the United States without regard to conflicts of laws provisions and without regard to the United Nations Convention on the International Sale of Goods. The jurisdiction and venue for actions related to this Agreement will be the state and United States federal courts located in San Francisco, California and both parties submit to the personal jurisdiction of those courts.</p>
</li>
<li>
<p><em>Attorneys’ Fees and Costs</em>. The prevailing party in any action to enforce this Agreement will be entitled to recover its attorneys’ fees and costs in connection with such action.</p>
</li>
<li>
<p><em>Notices</em>. Except as set out in this Agreement, any notice or consent under this Agreement must be in writing and will be deemed given: (a) upon receipt if by personal delivery, (b) upon receipt if by certified or registered U.S. mail (return receipt requested), (c) one day after dispatch if by a commercial overnight delivery service or (d) upon delivery if by email. Either party may update its contact information with notice to the other party. Notices to Sentry must be sent to: Functional Software, Inc. dba Sentry, Attn: Legal Department, 45 Fremont Street, 8th Floor, San Francisco, CA 94105-2250, USA (with a copy by email to <a href="mailto:legal@sentry.io">legal@sentry.io</a>). Notices to Customer will be sent to the address (if any) set forth in the Order or by email to Customer’s email set forth in the Order. Sentry may also send notices to Customer through the Service.</p>
</li>
<li>
<p><em>Entire Agreement</em>. This Agreement (which includes all Orders, the Policies and, if applicable, the BAA and the DPA) is the parties’ entire agreement regarding its subject matter and supersedes any prior or contemporaneous agreements regarding its subject matter. In this Agreement, headings are for convenience only and “including” and similar terms are to be construed without limitation. This Agreement may be executed in counterparts (including electronic copies and PDFs), each of which is deemed an original and which together form one and the same agreement.</p>
</li>
<li>
<p><em>Amendments</em>. Except as otherwise provided herein, any amendments, modifications or supplements to this Agreement must be in writing and signed by each party’s authorized representatives or, as appropriate, agreed through electronic means provided by Sentry. Nonetheless, with notice to Customer, Sentry may modify the Policies to reflect new features or changing practices, but the modifications will not materially decrease Sentry’s overall obligations during a Subscription Term. The terms in any Customer purchase order or business form will not amend or modify this Agreement and are expressly rejected by Sentry; any of these Customer documents are for administrative purposes only and have no legal effect.</p>
</li>
<li>
<p><em>Waivers and Severability</em>. Waivers must be signed by the waiving party’s authorized representative and cannot be implied from conduct. If any provision of this Agreement is held invalid, illegal or unenforceable, it will be limited to the minimum extent necessary so the rest of this Agreement remains in effect.</p>
</li>
<li>
<p><em>Force Majeure</em>. Neither party is liable for any delay or failure to perform any obligation under this Agreement (except for a failure to pay fees) due to events beyond its reasonable control, such as a strike, blockade, war, act of terrorism, pandemic, riot, Internet or utility failures, refusal of government license or natural disaster.</p>
</li>
<li>
<p><em>Subcontractors</em>. Sentry may use subcontractors and permit them to exercise Sentry’s rights, but Sentry remains responsible for their compliance with this Agreement and for its overall performance under this Agreement.</p>
</li>
<li>
<p><em>Independent Contractors</em>. The parties are independent contractors, not agents, partners or joint venturers.</p>
</li>
<li>
<p><em>Export Control</em>. Customer agrees to comply with all relevant U.S. and foreign export and import Laws in using the Service. Customer (a) represents and warrants that it is not listed on any U.S. government list of prohibited or restricted parties or located in (or a national of) a country that is subject to a U.S. government embargo or that has been designated by the U.S. government as a “terrorist supporting” country, (b) agrees not to access or use the Service in violation of any U.S. export embargo, prohibition or restriction and (c) will not submit to the Service any information controlled under the U.S. International Traffic in Arms Regulations.</p>
</li>
<li>
<p><em>Government End-Users</em>. Elements of the Service are commercial computer software. If the user or licensee of the Service is an agency, department, or other entity of the United States Government, the use, duplication, reproduction, release, modification, disclosure, or transfer of the Service or any related documentation of any kind, including technical data and manuals, is restricted by the terms of this Agreement in accordance with Federal Acquisition Regulation 12.212 for civilian purposes and Defense Federal Acquisition Regulation Supplement 227.7202 for military purposes. The Service was developed fully at private expense. All other use is prohibited.</p>
</li>
</ol>
</li>
<li>
<p><strong>Definitions</strong></p>
<p>“<strong>Additional Uses</strong>” means any legitimate business purposes such as analytics, benchmarking, reporting and developing new products and services.</p>
<p>“<strong>Affiliate</strong>” means an entity directly or indirectly owned by, controlled by or under common control with a party, where “ownership” means the beneficial ownership of fifty percent (50%) or more of an entity’s voting equity securities or other equivalent voting interests and “control” means the power to direct the management or affairs of an entity.</p>
<p>“<strong>Aggregated or Anonymized</strong>” means de-identified or aggregated so that it does not individually identify Customer, its Users or any other person, and Sentry will not identify Customer as the source of such data.</p>
<p>“<strong>AUP</strong>” means the Acceptable Use Policy, the current version of which is at <a href="https://sentry.io/legal/aup/">https://sentry.io/legal/aup/</a>.</p>
<p>“<strong>BAA</strong>” means the Business Associate Agreement, if any, separately executed by the parties in connection with this Agreement.</p>
<p>“<strong>CCPA</strong>” means the California Consumer Privacy Act of 2018 (California Civil Code §§1798.100 et seq.); as may be amended, superseded or replaced from time to time.</p>
<p>“<strong>Customer Application</strong>” means Customer’s application, website or other offering owned and operated by (or for the benefit of) Customer which Customer uses the Service to monitor.</p>
<p>“<strong>Documentation</strong>” means Sentry’s usage guidelines and standard technical documentation for the Service, the current versions of which are at <a href="https://docs.sentry.io/">https://docs.sentry.io/</a> and <a href="https://docs.codecov.com/docs">https://docs.codecov.com/docs</a>, respectively.</p>
<p>“<strong>DPA</strong>” means the Data Protection Addendum, if any, separately executed by the parties in connection with this Agreement.</p>
<p>“<strong>European Data Protection Legislation</strong>” means the data protection and privacy laws and regulations enacted in Europe and applicable to the Personal Data in question, including as applicable: (a) the GDPR; (b) the Federal Data Protection Act of 19 June 1992 (Switzerland); and/or (c) in respect of the United Kingdom, the Data Protection Act 2018 and any applicable national legislation that replaces or converts in domestic law the GDPR or any other law relating to data and privacy as a consequence of the United Kingdom leaving the European Union; in each case as may be amended, superseded or replaced from time to time.</p>
<p>“<strong>GDPR</strong>” means European Union Regulation 2016/679, as may be amended, superseded or replaced from time to time.</p>
<p>“<strong>High Risk Activities</strong>” means activities where use or failure of the Service could lead to death, personal injury or environmental damage, including life support systems, emergency services, nuclear facilities, autonomous vehicles or air traffic control.</p>
<p>“<strong>Laws</strong>” means all relevant local, state, federal and international laws, regulations and conventions, including those related to data privacy and data transfer, international communications and export of technical or personal data.</p>
<p>“<strong>Non-Identifying Data</strong>” means elements of Service Data that by their nature cannot be used to identify Customer or its Users. For avoidance of doubt, Non-Identifying Data will not include any Personal Data, source code, content or attachments.</p>
<p>“<strong>Order</strong>” has the meaning set forth in the second paragraph of this Agreement.</p>
<p>“<strong>Personal Data</strong>” means personal data or personal information (as those terms are defined by European Data Protection Legislation or the CCPA, as applicable).</p>
<p>“<strong>PHI</strong>” means any patient, medical or other protected health information regulated by the Health Insurance Portability and Accountability Act (as amended and supplemented) (“<strong>HIPAA</strong>”).</p>
<p>“<strong>Policies</strong>” means the AUP, Privacy Policy, Security Policy or any other Sentry policies referenced in or attached to this Agreement.</p>
<p>“<strong>Privacy Policy</strong>” means the Privacy Policy for the relevant Service, the current versions of which are at <a href="https://sentry.io/privacy/">https://sentry.io/privacy/</a> and <a href="https://about.codecov.io/privacy/">https://about.codecov.io/privacy/</a>, respectively.</p>
<p>“<strong>SDK</strong>” means a software developer kit or other input tool that enables Customer to submit Service Data regarding a Customer Application to the Service.</p>
<p>“<strong>Scope of Use</strong>” means any monthly usage quota or seat allowance set forth in an Order.</p>
<p>“<strong>Security Policy</strong>” means the Security Policy for the relevant Service, the current versions of which are at <a href="https://sentry.io/security/">https://sentry.io/security/</a> and <a href="https://about.codecov.io/security/">https://about.codecov.io/security/</a>, respectively.</p>
<p>“<strong>Sensitive Personal Information</strong>” means any (a) special categories of data enumerated in the GDPR, Article 9(1) or any successor legislation, (b) PHI, (c) credit, debit or other payment card data subject to the Payment Card Industry Data Security Standards (PCI DSS), (d) other information subject to regulation or protection under specific Laws such as the Children’s Online Privacy Protection Act or Gramm-Leach-Bliley Act (or related rules or regulations), (e) social security numbers, driver’s license numbers or other government ID numbers or (f) any data similar to the above protected under foreign or domestic laws.</p>
<p>“<strong>Service</strong>” means Sentry’s proprietary cloud service identified in the relevant Order or otherwise provided to Customer, as modified from time to time. The Service includes the Documentation but does not include SDKs or Third-Party Platforms.</p>
<p>“<strong>Service Data</strong>” means data collected from a Customer Application that is reported to the Service, such as the occurrence of a software exception or bug, software test coverage metrics, telemetry that captures how a user interacts with a Customer Application, software performance metrics or system resource usage (including any associated context, metadata, files or attachments) or any other data, content or materials that Customer (including its Users) submits to the Service, including from Third-Party Platforms.</p>
<p>“<strong>Subscription Term</strong>” means the term for Customer’s use of the Service as identified in an Order.</p>
<p>“<strong>Support</strong>” means technical support for the Service.</p>
<p>“<strong>Third-Party Platform</strong>” means any platform, add-on, service or product not provided by Sentry that Customer elects to integrate or enable for use with the Service.</p>
<p>“<strong>Usage Data</strong>” means technical logs, data and other learnings about Customer’s and its Users’ configuration and use of the Service, such as monthly quota information and frameworks in use.</p>
<p>“<strong>User</strong>” means any employee or contractor of Customer or its Affiliates that Customer allows to use the Service on its behalf.</p>
</li>
<li>
<p><strong>Purchase from Reseller</strong>. If Customer obtained the Service through an authorized reseller of Sentry (“<strong>Reseller</strong>”), the following terms are applicable and will prevail in event of any conflict with any other provisions of this Agreement:</p>
<ol>
<li>
<p>This Agreement is between Sentry and Customer and governs all access and use of the Service by Customer. Resellers are not authorized to modify this Agreement or make any promises or commitments on Sentry’s behalf, and Sentry is not bound by any obligations to Customer other than as set forth in this Agreement. Sentry is not party to (or responsible under) any separate agreement between Customer and Reseller and is not responsible for the Reseller’s acts, omissions, products or services.</p>
</li>
<li>
<p>Customer’s order details (e.g., Scope of Use and fees) will be as stated in the Order placed by Reseller with Sentry on Customer’s behalf. The Reseller is responsible for the accuracy of such Order.</p>
</li>
<li>
<p>The amount paid by Customer to the Reseller will be deemed the amount paid or payable by Customer to Sentry under this Agreement for purposes of Section 13 (Limitations of Liability).</p>
</li>
<li>
<p>Instead of paying Sentry, Customer will pay the applicable amounts to the Reseller, as agreed between Customer and the Reseller. If the Reseller fails to pay Sentry the applicable fees for Customer’s use of the Service, Sentry reserves the right to terminate the applicable Subscription Term for such Service and all related rights granted hereunder.</p>
</li>
<li>
<p>In the event Customer is entitled to a refund under this Agreement, Customer must request such refund through the Reseller. Any request sent directly to Sentry may be redirected to the Reseller. Sentry will refund any applicable fees to the Reseller and the Reseller will be solely responsible for refunding such fees to Customer, unless otherwise specified by Sentry. Sentry will have no further liability to Customer in the event the Reseller fails to refund such fees to Customer.</p>
</li>
</ol>
</li>
</ol>  </div> </div>  </div>  </div>   </div> </section> </main> <footer role="contentinfo" aria-label="Site footer" class="relative z-10 bg-white"> <section class="relative overflow-x-clip z-[10]   " style=""> <div class="clip-container clip-top-flush clip-bottom-flush" style="top: -0; bottom: -1px" data-astro-cid-4cy7faeu>  </div>  <div class="container" data-astro-cid-bdd4tvdo style="--xs: 0%;--sm: 576px;--md: 768px;--lg: 992px;--xl: 1152px;">  <svg class="block -my-1 transition-transform duration-200 ease-out rotate-[2deg]" style="color: #F5C26B" width="100%" height="8" aria-hidden="true" data-astro-cid-bbaqdyzm><defs data-astro-cid-bbaqdyzm><pattern id="line-g11iigavo" x="0" y="0" width="15" height="8" patternUnits="userSpaceOnUse" data-astro-cid-bbaqdyzm><path d="M15 5.9c-3.8 0-3.8-4.4-7.5-4.4S3.7 5.9 0 5.9" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="3" data-astro-cid-bbaqdyzm></path></pattern></defs><rect x="0" y="0" width="100%" height="8" fill="url(#line-g11iigavo)" data-astro-cid-bbaqdyzm></rect></svg><nav aria-label="footer navigation" role="navigation"> <div class="flex flex-col md:flex-row md:flex-nowrap gap-4 md:gap-0 lg:gap-[3rem] py-16 md:pb-12"> <div class="mb-4 md:mb-0 md:flex-1 lg:flex-1 lg:px-0"> <div data-astro-cid-cvxggrkk> <h3 class="text-base mb-4 font-semibold text-gray-800 xl:pl-0 pl-5" data-astro-cid-cvxggrkk> Company </h3> <ul class="list-none p-0 m-0 grid gap-y-5 mt-4 xl:mt-0" data-astro-cid-cvxggrkk> <li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/about/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/about/"> About </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://blog.sentry.io/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://blog.sentry.io/"> Blog </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/careers/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/careers/"> Careers </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/contact/enterprise/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/contact/enterprise/"> Contact Us </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/trust/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/trust/"> Trust </a>  </li>  </ul> </div> </div><div class="mb-4 md:mb-0 md:flex-1 lg:flex-1 lg:px-0"> <div data-astro-cid-cvxggrkk> <h3 class="text-base mb-4 font-semibold text-gray-800 xl:pl-0 pl-5" data-astro-cid-cvxggrkk> Platform </h3> <ul class="list-none p-0 m-0 grid gap-y-5 mt-4 xl:mt-0" data-astro-cid-cvxggrkk> <li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/error-monitoring/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/error-monitoring/"> Error Monitoring </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/logs/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/logs/"> Logs </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/seer/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/seer/"> Seer </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/session-replay/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/session-replay/"> Session Replay </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/metrics/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/metrics/"> Metrics </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/tracing/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/tracing/"> Tracing </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/uptime-monitoring/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/uptime-monitoring/"> Uptime Monitoring </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/profiling/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/profiling/"> Profiling </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/product/cron-monitoring/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/product/cron-monitoring/"> Cron Monitoring </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/integrations/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/integrations/"> Integrations </a>  </li>  </ul> </div> </div><div class="mb-4 md:mb-0 md:flex-1 lg:flex-1 lg:px-0"> <div data-astro-cid-cvxggrkk> <h3 class="text-base mb-4 font-semibold text-gray-800 xl:pl-0 pl-5" data-astro-cid-cvxggrkk> Solutions </h3> <ul class="list-none p-0 m-0 grid gap-y-5 mt-4 xl:mt-0" data-astro-cid-cvxggrkk> <li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/for/full-stack/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/for/full-stack/"> Web / Full Stack Development </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/solutions/mobile-developers/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/solutions/mobile-developers/"> Mobile Crash Reporting </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/solutions/game-developers/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/solutions/game-developers/"> Game Crash Reporting </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/solutions/ai-observability/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/solutions/ai-observability/"> AI Observability </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/solutions/application-performance-monitoring/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/solutions/application-performance-monitoring/"> Application Performance Monitoring </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/solutions/application-observability/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/solutions/application-observability/"> Application Observability </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/solutions/real-user-monitoring-rum/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/solutions/real-user-monitoring-rum/"> Real User Monitoring </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/solutions/ecommerce/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/solutions/ecommerce/"> Ecommerce </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/for/enterprise/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/for/enterprise/"> Enterprise </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://sentry.io/for/startups/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://sentry.io/for/startups/"> Startups </a>  </li>  </ul> </div> </div><div class="mb-4 md:mb-0 md:flex-1 lg:flex-1 lg:px-0"> <div data-astro-cid-cvxggrkk> <h3 class="text-base mb-4 font-semibold text-gray-800 xl:pl-0 pl-5" data-astro-cid-cvxggrkk> Get Help </h3> <ul class="list-none p-0 m-0 grid gap-y-5 mt-4 xl:mt-0" data-astro-cid-cvxggrkk> <li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://docs.sentry.io/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://docs.sentry.io/"> Docs </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://help.sentry.io/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://help.sentry.io/"> Help Center </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://status.sentry.io/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://status.sentry.io/"> Status </a>  </li><li class="pb-1 pl-6 xl:pl-0" data-astro-cid-cvxggrkk> <a href="https://develop.sentry.dev/getting-started/" data-astro-cid-cvxggrkk="true" class="no-underline font-medium text-sm leading-[18px] uppercase whitespace-nowrap flex items-center gap-x-1.5 w-full min-h-[18px] py-0.5 hover:underline xl:w-max transition-colors duration-200 font-sans text-[#4E2A9A] hover:text-[#4E2A9A]" data-link-href="https://develop.sentry.dev/getting-started/"> Dev Resources </a>  </li>  </ul> </div> </div> </div> </nav> <svg class="block -my-1 transition-transform duration-200 ease-out" style="color: #e5e5e5" width="100%" height="8" aria-hidden="true" data-astro-cid-bbaqdyzm><defs data-astro-cid-bbaqdyzm><pattern id="line-1xx6047k9" x="0" y="0" width="15" height="8" patternUnits="userSpaceOnUse" data-astro-cid-bbaqdyzm><path d="M15 5.9c-3.8 0-3.8-4.4-7.5-4.4S3.7 5.9 0 5.9" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="3" data-astro-cid-bbaqdyzm></path></pattern></defs><rect x="0" y="0" width="100%" height="8" fill="url(#line-1xx6047k9)" data-astro-cid-bbaqdyzm></rect></svg>  <div class="flex flex-col lg:flex-row items-center justify-between py-8 gap-8 lg:gap-0"> <!-- Legal Links --> <div class="w-full lg:w-5/12 flex items-center justify-start mt-[1rem]"> <div> <div class="flex gap-6 items-center"> <a href="https://sentry.io/terms/" class="no-underline font-medium text-sm leading-[18px] uppercase hover:underline font-sans text-[#4E2A9A]"> Terms </a><a href="https://sentry.io/security/" class="no-underline font-medium text-sm leading-[18px] uppercase hover:underline font-sans text-[#4E2A9A]"> Security &amp; Compliance </a><a href="https://sentry.io/privacy/" class="no-underline font-medium text-sm leading-[18px] uppercase hover:underline font-sans text-[#4E2A9A]"> Privacy </a> </div> </div> </div> <!-- Logo/OSS and Social Links - Always in same row --> <div class="w-full lg:w-7/12 flex items-center justify-between gap-4"> <!-- Logo/OSS --> <div class="flex items-center gap-4"> <a href="https://sentry.io/" aria-label="home" class="focus:outline-none focus:bg-pink text-dk-blurple"> <svg xmlns="https://www.w3.org/2000/svg" viewBox="0 0 50 44" aria-hidden="true" class="block h-8"> <path fill="currentColor" d="M124.32,28.28,109.56,9.22h-3.68V34.77h3.73V15.19l15.18,19.58h3.26V9.22h-3.73ZM87.15,23.54h13.23V20.22H87.14V12.53h14.93V9.21H83.34V34.77h18.92V31.45H87.14ZM71.59,20.3h0C66.44,19.06,65,18.08,65,15.7c0-2.14,1.89-3.59,4.71-3.59a12.06,12.06,0,0,1,7.07,2.55l2-2.83a14.1,14.1,0,0,0-9-3c-5.06,0-8.59,3-8.59,7.27,0,4.6,3,6.19,8.46,7.52C74.51,24.74,76,25.78,76,28.11s-2,3.77-5.09,3.77a12.34,12.34,0,0,1-8.3-3.26l-2.25,2.69a15.94,15.94,0,0,0,10.42,3.85c5.48,0,9-2.95,9-7.51C79.75,23.79,77.47,21.72,71.59,20.3ZM195.7,9.22l-7.69,12-7.64-12h-4.46L186,24.67V34.78h3.84V24.55L200,9.22Zm-64.63,3.46h8.37v22.1h3.84V12.68h8.37V9.22H131.08ZM169.41,24.8c3.86-1.07,6-3.77,6-7.63,0-4.91-3.59-8-9.38-8H154.67V34.76h3.8V25.58h6.45l6.48,9.2h4.44l-7-9.82Zm-10.95-2.5V12.6h7.17c3.74,0,5.88,1.77,5.88,4.84s-2.29,4.86-5.84,4.86Z M29,2.26a4.67,4.67,0,0,0-8,0L14.42,13.53A32.21,32.21,0,0,1,32.17,40.19H27.55A27.68,27.68,0,0,0,12.09,17.47L6,28a15.92,15.92,0,0,1,9.23,12.17H4.62A.76.76,0,0,1,4,39.06l2.94-5a10.74,10.74,0,0,0-3.36-1.9l-2.91,5a4.54,4.54,0,0,0,1.69,6.24A4.66,4.66,0,0,0,4.62,44H19.15a19.4,19.4,0,0,0-8-17.31l2.31-4A23.87,23.87,0,0,1,23.76,44H36.07a35.88,35.88,0,0,0-16.41-31.8l4.67-8a.77.77,0,0,1,1.05-.27c.53.29,20.29,34.77,20.66,35.17a.76.76,0,0,1-.68,1.13H40.6q.09,1.91,0,3.81h4.78A4.59,4.59,0,0,0,50,39.43a4.49,4.49,0,0,0-.62-2.28Z"></path> </svg> </a> <a href="https://opensourcepledge.com/members/sentry/" target="_blank" aria-label="Open Source Pledge" class="text-dk-blurple"> <svg xmlns="https://www.w3.org/2000/svg" width="82" height="39" viewBox="0 0 82 39" fill="none" class="h-full w-auto max-w-none"> <g clip-path="url(#clip0_17_1328)"> <mask id="mask0_17_1328" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="82" height="39"> <path d="M81.5626 0H0.861328V38.9508H81.5626V0Z" fill="white"></path> </mask> <g mask="url(#mask0_17_1328)"> <path fill-rule="evenodd" clip-rule="evenodd" d="M6.6311 0.243164C4.29077 0.243164 2.3638 2.08282 2.25534 4.42064L0.866132 34.3671C0.750331 36.8634 2.74295 38.9506 5.2419 38.9506H35.569C38.0679 38.9506 40.0605 36.8634 39.9447 34.3671L38.5555 4.42064C38.447 2.08281 36.5201 0.243164 34.1797 0.243164H6.6311ZM9.81298 1.51744C6.90987 1.51744 4.55642 3.87087 4.55642 6.77399V27.9595C4.55642 30.8627 6.90987 33.2161 9.81298 33.2161H30.9986C33.9016 33.2161 36.2551 30.8627 36.2551 27.9595V6.774C36.2551 3.87087 33.9016 1.51744 30.9986 1.51744H9.81298Z" fill="currentColor"></path> <path fill-rule="evenodd" clip-rule="evenodd" d="M16.6011 7.19482L29.6159 14.5515H18.9149H11.1387V11.4957H17.9538L16.6011 7.19482Z" fill="currentColor"></path> <path fill-rule="evenodd" clip-rule="evenodd" d="M24.1535 26.18L11.1387 18.8232H21.8397H29.6159V21.8791H22.8008L24.1535 26.18Z" fill="currentColor"></path> <path d="M45.2016 26.9242V25.5909H46.7721C47.0882 25.5909 47.3416 25.4953 47.5326 25.3045C47.7236 25.1069 47.819 24.8501 47.819 24.534C47.819 24.2311 47.7236 23.9876 47.5326 23.8031C47.3416 23.6187 47.0882 23.5266 46.7721 23.5266H45.2016V22.1931H46.7819C47.3284 22.1931 47.8058 22.2887 48.2141 22.4797C48.6224 22.6705 48.9383 22.9438 49.1623 23.2995C49.3861 23.6484 49.4981 24.06 49.4981 24.534C49.4981 25.0146 49.3861 25.4362 49.1623 25.7983C48.9383 26.1538 48.6224 26.4304 48.2141 26.6279C47.8124 26.8255 47.335 26.9242 46.7819 26.9242H45.2016ZM44.0361 29.0873V22.1931H45.6659V29.0873H44.0361ZM50.3908 29.0873V22.1931H52.0206V27.7539H55.3589V29.0873H50.3908ZM56.4196 29.0873V22.1931H61.5259V23.5266H58.0493V24.8599H60.2914V26.1934H58.0493V27.7539H61.5655V29.0873H56.4196ZM62.6558 29.0873V22.1931H64.9768C65.4971 22.1931 65.9613 22.2755 66.3694 22.4401C66.7843 22.5981 67.1367 22.8286 67.4263 23.1315C67.716 23.4278 67.9366 23.7867 68.088 24.2081C68.2396 24.6295 68.3153 25.1003 68.3153 25.6204C68.3153 26.1473 68.2396 26.6247 68.088 27.0526C67.9366 27.474 67.716 27.8394 67.4263 28.149C67.1367 28.4518 66.7843 28.6856 66.3694 28.8502C65.9613 29.0082 65.4971 29.0873 64.9768 29.0873H62.6558ZM64.2854 27.7539H64.9768C65.3324 27.7539 65.6321 27.6683 65.8756 27.497C66.1259 27.3193 66.3136 27.0691 66.4386 26.7465C66.5703 26.4238 66.6361 26.0484 66.6361 25.6204C66.6361 25.1925 66.5703 24.8238 66.4386 24.5142C66.3136 24.1983 66.1259 23.9546 65.8756 23.7834C65.6321 23.6122 65.3324 23.5266 64.9768 23.5266H64.2854V27.7539ZM71.7661 29.2057C71.1538 29.2057 70.6204 29.0576 70.1661 28.7613C69.7184 28.4584 69.3694 28.0403 69.1191 27.507C68.8689 26.9736 68.7439 26.3514 68.7439 25.6403C68.7439 24.9291 68.8689 24.3068 69.1191 23.7734C69.3694 23.2336 69.7282 22.8154 70.1958 22.5191C70.6699 22.2228 71.2328 22.0747 71.8846 22.0747C72.3587 22.0747 72.7966 22.1701 73.1983 22.3611C73.6065 22.5455 73.9423 22.8188 74.2057 23.1809C74.4691 23.543 74.614 23.9841 74.6403 24.5044H72.8526C72.8263 24.195 72.7242 23.9349 72.5464 23.7242C72.3752 23.5135 72.1415 23.408 71.8452 23.408C71.5687 23.408 71.3217 23.4969 71.1044 23.6747C70.8937 23.8459 70.7257 24.0961 70.6007 24.4254C70.4822 24.7546 70.4229 25.1596 70.4229 25.6403C70.4229 26.1143 70.4855 26.5192 70.6106 26.8551C70.7357 27.1843 70.9101 27.4379 71.134 27.6156C71.3645 27.7868 71.6278 27.8724 71.9242 27.8724C72.1678 27.8724 72.3752 27.8394 72.5464 27.7736C72.7176 27.7012 72.8823 27.5959 73.0403 27.4576V26.6774L72.1217 26.7267L72.171 25.3736H74.6403V27.912C74.344 28.3135 73.9588 28.6296 73.4847 28.8601C73.0173 29.0906 72.4443 29.2057 71.7661 29.2057ZM75.6911 29.0873V22.1931H80.7974V23.5266H77.3208V24.8599H79.5628V26.1934H77.3208V27.7539H80.837V29.0873H75.6911Z" fill="currentColor"></path> <path d="M48.3928 10.6734C47.4895 10.6734 46.6941 10.4623 46.0068 10.0401C45.3293 9.60802 44.7991 8.99435 44.4161 8.19902C44.043 7.4037 43.8564 6.45617 43.8564 5.35646C43.8564 4.24693 44.043 3.2945 44.4161 2.49918C44.7991 1.70385 45.3293 1.09508 46.0068 0.672867C46.6941 0.250656 47.4895 0.0395508 48.3928 0.0395508C49.2961 0.0395508 50.0865 0.250656 50.764 0.672867C51.4415 1.09508 51.9669 1.70385 52.3399 2.49918C52.7229 3.28468 52.9143 4.23711 52.9143 5.35646C52.9143 6.45617 52.7229 7.4037 52.3399 8.19902C51.9669 8.99435 51.4415 9.60802 50.764 10.0401C50.0865 10.4623 49.2961 10.6734 48.3928 10.6734ZM48.3928 8.68506C48.7757 8.68506 49.1193 8.55741 49.4237 8.30212C49.7282 8.03701 49.9687 7.65898 50.1454 7.16804C50.3222 6.66728 50.4105 6.06342 50.4105 5.35646C50.4105 4.63968 50.3222 4.03582 50.1454 3.54489C49.9687 3.04412 49.7282 2.66609 49.4237 2.41081C49.1193 2.15551 48.7757 2.02787 48.3928 2.02787C48.0098 2.02787 47.6612 2.16043 47.347 2.42554C47.0426 2.68082 46.8021 3.05885 46.6254 3.55961C46.4486 4.05055 46.3603 4.64951 46.3603 5.35646C46.3603 6.06342 46.4486 6.66728 46.6254 7.16804C46.8021 7.65898 47.0426 8.03701 47.347 8.30212C47.6612 8.55741 48.0098 8.68506 48.3928 8.68506ZM55.7921 7.27114V5.28282H58.1339C58.6052 5.28282 58.9832 5.14045 59.268 4.8557C59.5527 4.56114 59.6951 4.1782 59.6951 3.7069C59.6951 3.25523 59.5527 2.89192 59.268 2.617C58.9832 2.34207 58.6052 2.20461 58.1339 2.20461H55.7921V0.21629H58.1486C58.9635 0.21629 59.6755 0.358664 60.2842 0.64341C60.8929 0.928157 61.3642 1.33564 61.6981 1.86586C62.032 2.38626 62.1989 2.99994 62.1989 3.7069C62.1989 4.42367 62.032 5.05208 61.6981 5.59212C61.3642 6.12233 60.8929 6.53473 60.2842 6.82929C59.6852 7.12386 58.9734 7.27114 58.1486 7.27114H55.7921ZM54.0541 10.4966V0.21629H56.4843V10.4966H54.0541ZM63.3829 10.4966V0.21629H70.9974V2.20461H65.813V4.19293H69.1563V6.18125H65.813V8.50832H71.0563V10.4966H63.3829ZM72.6381 10.4966V0.21629H75.731L78.603 7.49206L78.441 3.75108V0.21629H80.7239V10.4966H77.631L74.7295 3.35342L74.921 6.96185V10.4966H72.6381Z" fill="currentColor"></path> <path d="M46.4889 19.8558C45.9306 19.8558 45.4502 19.7519 45.0478 19.5442C44.6517 19.33 44.3466 19.0313 44.1324 18.6483C43.9246 18.2588 43.8208 17.8012 43.8208 17.2753H45.3983C45.3983 17.6843 45.4859 17.9991 45.6612 18.2199C45.843 18.4341 46.1189 18.5412 46.4889 18.5412C46.7811 18.5412 47.0115 18.4795 47.1803 18.3562C47.3556 18.2263 47.4432 18.0446 47.4432 17.8109C47.4432 17.6356 47.3782 17.4993 47.2485 17.4019C47.125 17.298 46.9563 17.2136 46.7421 17.1487C46.5343 17.0773 46.3039 17.0124 46.0507 16.954C45.804 16.889 45.5541 16.8111 45.3009 16.7203C45.0542 16.6294 44.8238 16.5092 44.6096 16.36C44.4018 16.2106 44.233 16.0159 44.1032 15.7757C43.9798 15.5354 43.9182 15.2304 43.9182 14.8604C43.9182 14.4773 44.022 14.1332 44.2298 13.8282C44.444 13.523 44.7393 13.2796 45.1159 13.0979C45.4924 12.916 45.9339 12.8252 46.4402 12.8252C46.9011 12.8252 47.3295 12.916 47.7256 13.0979C48.1216 13.2731 48.4429 13.5295 48.6897 13.8671C48.9363 14.2047 49.0661 14.6201 49.0792 15.1136H47.4724C47.4594 14.8928 47.401 14.711 47.2972 14.5682C47.1998 14.4253 47.0732 14.3182 46.9174 14.2469C46.768 14.1755 46.6089 14.1398 46.4402 14.1398C46.2 14.1398 45.9955 14.1982 45.8268 14.3151C45.6579 14.4253 45.5736 14.5909 45.5736 14.8117C45.5736 14.9804 45.6352 15.1136 45.7586 15.2109C45.8884 15.3083 46.0572 15.3894 46.265 15.4544C46.4792 15.5128 46.7096 15.5712 46.9563 15.6297C47.2095 15.6881 47.4594 15.7627 47.7061 15.8536C47.9593 15.938 48.1897 16.0581 48.3975 16.2139C48.6118 16.3697 48.7805 16.5774 48.9039 16.8371C49.0336 17.0903 49.0986 17.4148 49.0986 17.8109C49.0986 18.2069 48.985 18.5607 48.7578 18.8723C48.537 19.1773 48.2287 19.4176 47.8327 19.5929C47.4432 19.7682 46.9953 19.8558 46.4889 19.8558ZM52.793 19.8558C52.1957 19.8558 51.6699 19.7162 51.2155 19.4371C50.7676 19.1514 50.417 18.7457 50.1638 18.2199C49.9171 17.694 49.7938 17.0675 49.7938 16.3405C49.7938 15.6069 49.9171 14.9772 50.1638 14.4514C50.417 13.9256 50.7676 13.523 51.2155 13.2439C51.6699 12.9647 52.1957 12.8252 52.793 12.8252C53.3903 12.8252 53.9128 12.9647 54.3608 13.2439C54.8087 13.523 55.156 13.9256 55.4027 14.4514C55.6559 14.9707 55.7825 15.6004 55.7825 16.3405C55.7825 17.0675 55.6559 17.694 55.4027 18.2199C55.156 18.7457 54.8087 19.1514 54.3608 19.4371C53.9128 19.7162 53.3903 19.8558 52.793 19.8558ZM52.793 18.5412C53.0462 18.5412 53.2734 18.4568 53.4746 18.288C53.6758 18.1128 53.8349 17.8628 53.9518 17.5382C54.0686 17.2072 54.1271 16.8079 54.1271 16.3405C54.1271 15.8665 54.0686 15.4673 53.9518 15.1428C53.8349 14.8117 53.6758 14.5617 53.4746 14.393C53.2734 14.2241 53.0462 14.1398 52.793 14.1398C52.5398 14.1398 52.3094 14.2274 52.1016 14.4027C51.9004 14.5714 51.7413 14.8214 51.6245 15.1525C51.5076 15.477 51.4492 15.8731 51.4492 16.3405C51.4492 16.8079 51.5076 17.2072 51.6245 17.5382C51.7413 17.8628 51.9004 18.1128 52.1016 18.288C52.3094 18.4568 52.5398 18.5412 52.793 18.5412ZM59.1165 19.8558C58.5258 19.8558 58.0228 19.7519 57.6072 19.5442C57.1918 19.33 56.8737 19.0313 56.6529 18.6483C56.4322 18.2653 56.3218 17.8174 56.3218 17.3045V12.942H57.9285V17.3045C57.9285 17.5577 57.9772 17.7751 58.0746 17.957C58.172 18.1387 58.3083 18.2815 58.4836 18.3854C58.6654 18.4828 58.8764 18.5315 59.1165 18.5315C59.3633 18.5315 59.5742 18.4828 59.7495 18.3854C59.9248 18.2815 60.0611 18.1387 60.1585 17.957C60.2559 17.7751 60.3045 17.5577 60.3045 17.3045V12.942H61.9113V17.3045C61.9113 17.8174 61.801 18.2653 61.5802 18.6483C61.3595 19.0313 61.0415 19.33 60.6259 19.5442C60.2105 19.7519 59.7074 19.8558 59.1165 19.8558ZM64.0476 17.1974V15.8828H65.5764C65.7712 15.8828 65.94 15.847 66.0828 15.7757C66.2321 15.7043 66.3457 15.6036 66.4236 15.4739C66.5081 15.344 66.5502 15.1979 66.5502 15.0357C66.5502 14.8799 66.5112 14.7435 66.4333 14.6267C66.362 14.5098 66.2614 14.4189 66.1315 14.354C66.0017 14.289 65.8524 14.2566 65.6835 14.2566H64.0476V12.942H65.6835C66.177 12.942 66.6119 13.0264 66.9884 13.1952C67.3714 13.3575 67.67 13.5945 67.8843 13.9061C68.0985 14.2177 68.2056 14.5942 68.2056 15.0357C68.2056 15.3017 68.1407 15.5647 68.0109 15.8244C67.8875 16.0776 67.7058 16.308 67.4655 16.5158C67.2318 16.7234 66.9463 16.889 66.6086 17.0124C66.2775 17.1357 65.9011 17.1974 65.479 17.1974H64.0476ZM62.8888 19.739V12.942H64.4955V19.739H62.8888ZM66.5891 19.739C66.5891 19.4533 66.5373 19.1644 66.4333 18.8723C66.3295 18.5736 66.177 18.2912 65.9757 18.0251C65.7809 17.7525 65.5375 17.5057 65.2453 17.2851C64.9532 17.0643 64.6157 16.8858 64.2326 16.7495L66.0146 16.3892C66.3912 16.5774 66.719 16.8013 66.9981 17.0611C67.2774 17.3207 67.5078 17.5998 67.6895 17.8985C67.8778 18.1971 68.0174 18.5054 68.1082 18.8236C68.1992 19.1352 68.2446 19.4403 68.2446 19.739H66.5891ZM71.8514 19.8558C71.2411 19.8558 70.7121 19.7129 70.2642 19.4274C69.8227 19.1352 69.4786 18.7262 69.232 18.2004C68.9917 17.668 68.8717 17.0481 68.8717 16.3405C68.8717 15.6264 68.995 15.0064 69.2417 14.4806C69.4883 13.9548 69.8389 13.549 70.2934 13.2634C70.7478 12.9713 71.2866 12.8252 71.9098 12.8252C72.3967 12.8252 72.8446 12.9193 73.2536 13.1076C73.6626 13.2958 73.9969 13.5684 74.2566 13.9256C74.5227 14.2826 74.6688 14.7175 74.6948 15.2304H72.942C72.9095 14.8993 72.8057 14.6364 72.6304 14.4417C72.4551 14.2403 72.2149 14.1398 71.9098 14.1398C71.6501 14.1398 71.4132 14.2241 71.199 14.393C70.9912 14.5552 70.8257 14.8019 70.7024 15.133C70.5855 15.4575 70.5271 15.8601 70.5271 16.3405C70.5271 16.8144 70.5855 17.2169 70.7024 17.548C70.8192 17.8725 70.975 18.1192 71.1698 18.288C71.371 18.4568 71.5982 18.5412 71.8514 18.5412C72.0656 18.5412 72.2507 18.499 72.4065 18.4146C72.5687 18.3237 72.6986 18.1938 72.796 18.0251C72.8998 17.8563 72.9615 17.6518 72.981 17.4117H74.7338C74.6818 17.9114 74.5324 18.3465 74.2858 18.7165C74.0455 19.08 73.721 19.3624 73.3121 19.5637C72.9031 19.7584 72.4162 19.8558 71.8514 19.8558ZM75.6626 19.739V12.942H80.697V14.2566H77.2693V15.5712H79.4798V16.8858H77.2693V18.4244H80.736V19.739H75.6626Z" fill="currentColor"></path> <path d="M43.8447 38.922L44.1813 34.4038H45.081L45.6572 37.0772L45.793 37.9575L45.9354 37.0772L46.4986 34.4038H47.3854L47.7285 38.922H47.0488L46.8999 36.0932L46.874 35.0964L46.6799 36.0932L46.0649 38.922H45.4824L44.8739 36.0932L44.6926 35.0834L44.6538 36.0932L44.5114 38.922H43.8447ZM50.8834 38.922V34.4038H54.1263V34.9864H51.5695V36.2874H53.3301V36.87H51.5695V38.3394H54.1522V38.922H50.8834ZM57.1842 38.922L57.5207 34.4038H58.4205L58.9966 37.0772L59.1326 37.9575L59.275 37.0772L59.8381 34.4038H60.7249L61.0679 38.922H60.3882L60.2394 36.0932L60.2134 35.0964L60.0193 36.0932L59.4044 38.922H58.8218L58.2133 36.0932L58.0321 35.0834L57.9932 36.0932L57.8508 38.922H57.1842ZM66.6826 36.5528C66.8465 36.6003 66.9911 36.6715 67.1163 36.7664C67.2458 36.8614 67.3472 36.9843 67.4204 37.1354C67.4982 37.2822 67.5371 37.4548 67.5371 37.6533C67.5371 37.9078 67.4723 38.1301 67.3428 38.3199C67.2177 38.5098 67.0386 38.6587 66.8055 38.7665C66.5725 38.8701 66.2963 38.922 65.9771 38.922H64.2293V34.4038H65.9123C66.387 34.4038 66.758 34.5074 67.0257 34.7144C67.2932 34.9216 67.427 35.1935 67.427 35.5301C67.427 35.6898 67.3967 35.8387 67.3363 35.9767C67.2802 36.1148 67.1961 36.2335 67.0839 36.3327C66.9717 36.4319 66.8379 36.5053 66.6826 36.5528ZM65.8799 34.9864H64.9154V36.3198H65.8799C66.1346 36.3198 66.3352 36.2573 66.4818 36.132C66.6329 36.0069 66.7085 35.8407 66.7085 35.6337C66.7085 35.4308 66.6329 35.2733 66.4818 35.1612C66.3309 35.0445 66.1302 34.9864 65.8799 34.9864ZM64.9154 38.3394H65.964C66.2273 38.3394 66.4345 38.2747 66.5854 38.1452C66.7409 38.0158 66.8185 37.841 66.8185 37.6209C66.8185 37.3922 66.7365 37.2152 66.5725 37.0901C66.4128 36.9649 66.1885 36.9024 65.8993 36.9024H64.9154V38.3394ZM70.8925 38.922V34.4038H74.1356V34.9864H71.5787V36.2874H73.3394V36.87H71.5787V38.3394H74.1615V38.922H70.8925ZM78.0672 37.0318V36.4492H79.2129C79.4028 36.4492 79.569 36.419 79.7114 36.3587C79.8581 36.2939 79.9725 36.2032 80.0544 36.0867C80.1407 35.9702 80.1839 35.8365 80.1839 35.6854C80.1839 35.5387 80.1471 35.4136 80.0739 35.31C80.0005 35.2064 79.9013 35.1266 79.776 35.0705C79.6509 35.0144 79.5107 34.9864 79.3553 34.9864H78.0672V34.4038H79.3553C79.6531 34.4038 79.9184 34.4555 80.1515 34.5591C80.3845 34.6583 80.5679 34.8029 80.7017 34.9928C80.8355 35.1827 80.9024 35.4136 80.9024 35.6854C80.9024 35.858 80.8614 36.0242 80.7794 36.1839C80.7017 36.3436 80.5874 36.488 80.4363 36.6176C80.2896 36.7427 80.1105 36.8441 79.8991 36.9217C79.6876 36.9951 79.4481 37.0318 79.1805 37.0318H78.0672ZM77.5753 38.922V34.4038H78.2614V38.922H77.5753ZM80.1709 38.922C80.1451 38.7191 80.089 38.5185 80.0027 38.3199C79.9206 38.1214 79.8084 37.9315 79.666 37.7503C79.5236 37.5691 79.3467 37.4008 79.1353 37.2454C78.9281 37.0901 78.6865 36.9499 78.4103 36.8247L79.1741 36.6564C79.4589 36.7988 79.7027 36.9585 79.9055 37.1354C80.1127 37.308 80.2831 37.4914 80.4169 37.6855C80.555 37.8798 80.6586 38.0804 80.7276 38.2876C80.8009 38.4947 80.8484 38.7062 80.87 38.922H80.1709Z" fill="currentColor"></path> <path d="M80.8899 31.5459H43.9648V31.9635H80.8899V31.5459Z" fill="currentColor"></path> </g> </g> <defs> <clipPath id="clip0_17_1328"> <rect width="80.7012" height="38.9508" fill="white" transform="translate(0.861328)"></rect> </clipPath> </defs> </svg> </a> </div> <!-- Social Links --> <div> <div class="flex gap-6 items-center"> <a href="https://x.com/sentry/" target="_blank" rel="noopener" class="h-6 w-6 flex items-center justify-center" aria-label="Twitter Menu Button"> <img src="/astro-assets/nav-icons/x-twitter.png" alt="" class="h-6 w-6" aria-hidden="true"> <span class="sr-only"> Twitter Menu Button </span> </a><a href="https://github.com/getsentry/" target="_blank" rel="noopener" class="h-6 w-6 flex items-center justify-center" aria-label="Github Social Menu Button"> <img src="/astro-assets/nav-icons/github.png" alt="" class="h-6 w-6" aria-hidden="true"> <span class="sr-only"> Github Social Menu Button </span> </a><a href="https://www.linkedin.com/company/getsentry/" target="_blank" rel="noopener" class="h-6 w-6 flex items-center justify-center" aria-label="LinkedIn Menu Button"> <img src="/astro-assets/nav-icons/linkedin.png" alt="" class="h-6 w-6" aria-hidden="true"> <span class="sr-only"> LinkedIn Menu Button </span> </a><a href="https://discord.gg/sentry" target="_blank" rel="noopener" class="h-6 w-6 flex items-center justify-center" aria-label="Discord Menu Button"> <img src="/astro-assets/nav-icons/discord.png" alt="" class="h-6 w-6" aria-hidden="true"> <span class="sr-only"> Discord Menu Button </span> </a> </div> </div> </div> </div> <div class="text-center mb-4"> <span class="text-sm font-normal leading-tight text-[#5B536E]">
© 2026 • Sentry is a registered Trademark of Functional Software,
        Inc.
</span> </div>   </div> </section> </footer> <script nonce="mDmU4cbt0iXImXZ07ByWTnN9mxGPNzYH" type="module">(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"c375fea9805680a06c17231d4eef06f831259223"};var t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="042e799a-6898-4477-8864-8729dc3b0bbf",e._sentryDebugIdIdentifier="sentry-dbid-042e799a-6898-4477-8864-8729dc3b0bbf")}catch{}})();const n=["error-monitoring","tracing","logs","session-replay","seer","profiling","uptime-monitoring","cron-monitoring"],r=[{name:"start_signup",description:"Open Sentry's free sign-up flow in a new tab so a user can create an account.",inputSchema:{type:"object",properties:{source:{type:"string",description:"Optional UTM source/campaign label for attribution."}},additionalProperties:!1},execute:({source:e})=>{const t=new URL("https://sentry.io/signup/");return typeof e=="string"&&e.length>0&&t.searchParams.set("utm_source",e),window.open(t.toString(),"_blank","noopener,noreferrer"),{opened:t.toString()}}},{name:"request_demo",description:"Open Sentry's sales demo request form in a new tab.",inputSchema:{type:"object",properties:{},additionalProperties:!1},execute:()=>{const e="/demo/";return window.open(e,"_blank","noopener,noreferrer"),{opened:e}}},{name:"open_pricing",description:"Navigate to Sentry's pricing page.",inputSchema:{type:"object",properties:{},additionalProperties:!1},execute:()=>(window.location.assign("/pricing/"),{navigated:"/pricing/"})},{name:"search_docs",description:"Search the Sentry documentation for a given query. Opens a Google site:docs.sentry.io search in a new tab, since docs.sentry.io uses a client-side Algolia modal that cannot be triggered via URL.",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search query, e.g. 'react source maps'.",minLength:1}},required:["query"],additionalProperties:!1},execute:({query:e})=>{if(typeof e!="string"||e.length===0)throw new Error("search_docs: a non-empty query is required");const t=new URL("https://www.google.com/search");return t.searchParams.set("q",`site:docs.sentry.io ${e}`),window.open(t.toString(),"_blank","noopener,noreferrer"),{opened:t.toString()}}},{name:"open_product_page",description:"Open one of Sentry's product overview pages (error-monitoring, tracing, logs, session-replay, seer, profiling, uptime-monitoring, cron-monitoring).",inputSchema:{type:"object",properties:{product:{type:"string",enum:[...n]}},required:["product"],additionalProperties:!1},execute:({product:e})=>{if(typeof e!="string"||!n.includes(e))throw new Error(`open_product_page: invalid product "${String(e)}". Expected one of: ${n.join(", ")}`);const t=`/product/${e}/`;return window.location.assign(t),{navigated:t}}},{name:"discover_mcp_server",description:"Return the URL and discovery metadata for Sentry's hosted MCP server so the agent can connect.",inputSchema:{type:"object",properties:{},additionalProperties:!1},execute:()=>({endpoint:"https://mcp.sentry.dev/mcp",homepage:"https://mcp.sentry.dev/",documentation:"https://mcp.sentry.dev/"})}];function o(){if(!(typeof navigator>"u")&&navigator.modelContext?.provideContext)try{navigator.modelContext.provideContext({tools:r})}catch(e){console.warn("WebMCP registration failed:",e)}}o();</script> <script nonce="mDmU4cbt0iXImXZ07ByWTnN9mxGPNzYH" type="module">(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"c375fea9805680a06c17231d4eef06f831259223"};var t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="bb24f84d-920f-478e-ba84-8276f7483111",e._sentryDebugIdIdentifier="sentry-dbid-bb24f84d-920f-478e-ba84-8276f7483111")}catch{}})();let d;function n(){const e=[document.getElementById("grecaptcha-badge"),...document.querySelectorAll(".grecaptcha-badge")].filter(Boolean);if(e.length!==0){d?.disconnect(),d=void 0;for(const t of e)t.style.setProperty("visibility","hidden","important"),t.style.setProperty("opacity","0","important")}}n();document.addEventListener("DOMContentLoaded",n);d=new MutationObserver(n);d.observe(document.body,{childList:!0,subtree:!0});window.addEventListener("load",n);</script> </body> </html>   <script nonce="mDmU4cbt0iXImXZ07ByWTnN9mxGPNzYH" type="module">(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};t.SENTRY_RELEASE={id:"c375fea9805680a06c17231d4eef06f831259223"};var e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="1ed7626c-3866-4f1d-b677-cb1c7e65e28f",t._sentryDebugIdIdentifier="sentry-dbid-1ed7626c-3866-4f1d-b677-cb1c7e65e28f")}catch{}})();const a=document.getElementById("old-versions");if(a){const t=new URLSearchParams(window.location.search),e=t.get("userCurrentVersion"),n=a.dataset.latestSlug,l=a.dataset.latestNavPath||n,i=document.querySelector(".version-picker-faceplate");if(e){const c=Array.from(a.options);for(const o of c){const s=o.dataset.version,r=o.dataset.date;s!==e&&o.value!==n&&(o.hidden=!0,o.disabled=!0),s===e&&(o.textContent=`${s} (Your current version - ${r})`)}i&&a.options[a.selectedIndex]?.dataset.version===e&&(i.textContent=`${e} (Your current version)`)}a.addEventListener("change",c=>{const o=c.target,s=o.value===n?l??"":o.value,r=t.toString(),f=r?`${s}?${r}`:s;window.location.href=f})}const d=document.querySelector(".policy-content");d&&d.querySelectorAll("h2[id]").forEach(e=>{const n=document.createElement("a");n.href=`#${e.id}`,n.className="heading-anchor",n.setAttribute("aria-hidden","true"),n.innerHTML='<svg viewBox="0 0 24 24"><path d="M10.879 6.05l4.121-4.122a4.249 4.249 0 0 1 6.01 6.01l-4.121 4.122a1 1 0 0 1-1.415-1.414l4.122-4.122a2.249 2.249 0 0 0-3.182-3.182L12.293 7.464A1 1 0 0 1 10.879 6.05zm2.242 11.9l-4.121 4.122a4.249 4.249 0 1 1-6.01-6.01l4.121-4.122a1 1 0 0 0-1.414-1.415l-4.122 4.122a6.249 6.249 0 0 0 8.839 8.838l4.122-4.121a1 1 0 0 0-1.415-1.414zm-4.95-2.121l6.364-6.364a1 1 0 1 1 1.414 1.414l-6.364 6.364a1 1 0 0 1-1.414-1.414z"/></svg>',e.insertBefore(n,e.firstChild)});</script>