---
sourceDocument: Brazil API Reference
sourceDocumentLink: https://www.servicenow.com/docs/r/api-reference

 Release :

    - brazil

ft:locale :

    - en-US

ft:publication_title :

    - Brazil API Reference

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Use Script Debugger

# Script Debugger and Session Log {#ariaid-title1}

Release version: Brazil  
Updated September 10, 2026  
![](https://www.servicenow.com/docs/portal-asset/ico-clock) 3 minutes to read
Summarize  
![AI sparkle icon](https://servicenow.com/docs/portal-asset/ai-sparkle-icon) Summarized using AI  
This content was generated using new OpenAI-powered functionality. Results are provided on an as is basis and are not guaranteed to be accurate or complete.  

## Summary of Script Debugger and Session Log

The Script Debugger is a powerful tool designed for users with thescriptdebuggerrole to debug server-side JavaScript in ServiceNow.
It allows detailed inspection and control of script execution within interactive transactions such as business rules, script includes, and UI actions.
The Session Log complements this by enabling users with thelogdebuggerrole to view and download logs related to sessions, including those from custom UIs like Agent Workspace.
Show full answer Show less  

## Key Features

* **Script Debugger Capabilities:**
  * Set, remove, and manage breakpoints and conditional breakpoints.
  * Pause execution at breakpoints and step through code line-by-line or into/out of functions.
  * Evaluate expressions and interact with variables (local, global, and private closure variables) during runtime.
  * View call stack and current transaction details.
  * Console support for defining and verifying variables/functions while the script is paused.
  * Supports multiple developers debugging independently and impersonation support when roles and permissions allow.
  * Domain separation is supported, ensuring secure and segmented debugging across domains.
  * Limitations include inability to debug scripts running in strict mode and no direct breakpoint setting in Scripts - Background module scripts, but related script objects can be debugged.
* **Session Log Capabilities:**
  * View and download session logs filtered by business rules, script includes, and UI components.
  * Configurable transaction and message limits to control log size using user preferences (*glide.debugger.log.transaction.count* and *glide.debugger.logmessageslimit*).
  * Logs can be displayed under forms and lists or exclusively on the Session Log tab (configurable via *glide.debugger.log.ui* system property).
* **Console Statement Caching:**
  * Executed statements in the Console are cached in the browser, accessible via arrow keys.
  * Caching size is configurable with the *glide.debugger.console.cachedstmtlimit* user preference (default 20, max 100).
  * Caches are session and browser-specific and not preserved across logins or browser changes.

## Practical Benefits for ServiceNow Customers

* Enables effective troubleshooting and debugging of server-side scripts in real-time, improving script reliability and reducing downtime.
* Offers granular control over script execution flow, helping developers pinpoint issues quickly and validate logic during runtime.
* Supports collaboration by allowing multiple developers to debug independently without interfering with each other's sessions.
* Provides secure, role-based access to debugging and logging capabilities, ensuring compliance with organizational policies and domain separation.
* Allows detailed session log analysis for better insight into script execution and system behavior, aiding in faster problem resolution.

## Access and Usage

Developers can access the Script Debugger via the application navigator, Studio, or the syntax editor. The Session Log is available as a separate tab or integrated under forms and lists based on system property settings. Debugger transactions remain open for the duration of the user session and close upon logout or timeout.  
The Script Debugger enables users with the script_debugger role to debug server-side JavaScript. Users with the log_debugger role can use the Session Log to view and download required logs.{#script-debugger__script-debugger-rn-description}  
Users with the script_debugger role can perform these actions using Script Debugger:

* Have a dedicated debug transaction, which applies only to the current session.
* Set and remove breakpoints.
* Pause the current session at a breakpoint.
* Evaluate expressions during runtime.
* Step through code line-by-line.
* Step into and out of function and method calls.
* View the value of local and global variables.
* View the value of private variables from function closures.
* View the call stack.
* View the transaction that the system is processing.
* Turn off the script debugger to resume running paused scripts.
{#script-debugger__ul_fnc_tpl_bw}  
Use the Session Log tab to retrieve the session log for business rules, script includes, and a custom UI such as ServiceNow® Agent Workspace that has a GraphQL component. Users with the log_debugger role can:

* View session logs in a separate tab.
* Download a log.
* View logs for Agent Workspace.
* Specify debug options to view or download only the required logs.

{#script-debugger__ul_bhb_vjd_khb}By default, 100 transactions and 10,000 messages appear on the Session Log tab. If the transaction or message count exceeds the default value, the session log is cleared and the next transactions or messages appear. You can configure this transaction and message count using the glide.debugger.log.transaction.count and glide.debugger.log_messages_limit user preferences respectively. For more information about the glide.debugger.log.transaction.count and glide.debugger.log_messages_limit user preferences, see [User preference settings](https://www.servicenow.com/docs/access?context=r_UserPreferenceSettings&version=brazil&pubname=brazil-platform-user-interface&ft:locale=en-US).  
Note:  
Enable Session Log as a separate tab with Script Debugger using the glide.debugger.log.ui system property.

* The Page option displays logs under forms and lists and on the Session Log tab.
* The Session option displays logs only on the Session Log tab.

{#script-debugger__ul_xcx_kpd_khb}

For more information about the glide.debugger.log.ui system
property, see [Available system
properties](https://www.servicenow.com/docs/access?context=r_AvailableSystemProperties&version=brazil&pubname=brazil-platform-administration&ft:locale=en-US).

When you execute a statement in the Console, the executed statement is stored in the browser
cache. You can use the up arrow key to get the previous statement and down arrow key to get
the next statement from the browser cache. The user preference setting, glide.debugger.console.cached_stmt_limit, defines the number of statements cached
in a browser session. The default statement cache value is 20 and the maximum value is 100.
You can configure the statement cache value from user preferences.  
Note:  
The cached statements are not available when the browser cache is cleared or when you log in from a different browser or a different computer.  
The Script Debugger can pause any server-side script that runs in an interactive transaction such as business rules, script includes, script actions, or UI actions that require a response to proceed. If the GlideSystem method isInteractive() returns True when running the script in context, then the Script Debugger can pause it.  
Note:  
Some script objects, such as script includes, can be called from multiple contexts. For example:

* when a business rule runs a script include on a form submit that is an interactive transaction waiting on the form data to change before continuing.
* when a scheduled job runs the same script include that is a non-interactive background transaction that can also run other scripts simultaneously.
{#script-debugger__ul_dqb_mk3_ckb}

To debug client-side scripts, you can use browser-based developers tools.

A debugger transaction remains open as long as the user session is valid. If a user logs out
or their session times out, the system closes the debugger transaction.

To view debug logs, see [Display debugging
logs](https://www.servicenow.com/docs/Eb8lGrHSxqSiQBjUDiUJvA#display-debugging-logs "Display session debug logs to help diagnose script and application problems.").  
Note:  
When the Script Debugger is enabled, code is executed in interpreted mode. If parts of the script are set to run in strict mode, the debugger is not able to find the correct objects and the debugger fails. The Script Debugger must run on scripts outside of strict mode.
* **[Access the Script Debugger](https://www.servicenow.com/docs/mn2TfYBEzCPoBCRqjV7TNw)**   
  Developers can access the Script Debugger from the application navigator, Studio, or from the syntax editor.
* **[Script Debugger user interface](https://www.servicenow.com/docs/TQPprYPMdoNysYxdKCpIfA)**   
  The Script Debugger user interface (UI) displays information about breakpoints set, the call stack and line number of the currently executing script line, details about variables and transactions, and status of console.
* **[Evaluate expressions in runtime using Console](https://www.servicenow.com/docs/2~uV0_TOlFhPW~_~xnaGPg)**   
  Define, declare, and verify new variables and functions while you debug a script in runtime using Console. The script execution must be paused to use Console.
* **[Set or remove breakpoints](https://www.servicenow.com/docs/JNwBQOJsFThrodQptEeMng)**   
  Set breakpoints or conditional breakpoints to pause scripts at specific lines, and remove breakpoints when you're done debugging them.
* **[Set or remove logpoints](https://www.servicenow.com/docs/ddzpudHuNw5i7seBY8B5WQ)**   
  Set breakpoints or conditional logpoints to log messages to the console at specific lines, and remove logpoints when you are done debugging them.
* **[Script Debugger multiple developer support](https://www.servicenow.com/docs/~WAr7J9Rw_CsQruefwR7FQ)**   
  The Script Debugger allows multiple developers to debug their own transactions without affecting each other.
* **[Script Debugger impersonation support](https://www.servicenow.com/docs/WFM6_~mWYM9bp58iQzDjnQ)**   
  You can use the Script Debugger while impersonating another user, but only if the impersonated user has the script_debugger role and has read access to the target script.
* **[Script Debugger Scripts - Background support](https://www.servicenow.com/docs/YWQWUw2CaAh35fSF5cNGhQ)**   
  The Scripts - Background module does not support setting breakpoints directly in the script field. You can however, set breakpoints in the script objects called or triggered by the Scripts - Background module.
* **[Domain separation and Script Debugger](https://www.servicenow.com/docs/CH_Z7cW_QUQUUcx7Fb2LIg)**   
  Domain separation is supported in Script Debugger. Domain separation enables you to separate data, processes, and administrative tasks into logical groupings called domains. You can control several aspects of this separation, including which users can see and access data.

