SessionInformation.Callstack() in Business Central

Introduced in Business Central Wave 1 2025 releases, the SessionInformation.Callstack() method is a powerful diagnostic tool that helps developers trace the current call stack within AL code. Whether you’re troubleshooting custom extensions, tracking errors, or building telemetry, this method can become your best friend.

What is the SessionInformation.Callstack() Method?

The SessionInformation.Callstack() method is a built-in function in AL that returns a text string representing the current call stack of the Business Central server session. Think of the call stack as a chronological list of the functions and procedures that have been called to reach the current point in your code.

Each entry in the call stack typically includes:

  • Object Type and Name: The type of object (e.g., Codeunit, Table, Page) and its name.
  • Function/Procedure Name: The specific function or procedure being executed.
  • Line Number: The line number within the function/procedure where the call originated.

📌 Syntax

var
    CallStackText: Text;
begin
    CallStackText := SessionInformation.Callstack();
end;

🧩 Why is the Call Stack Important?

Understanding the call stack is crucial for several reasons:

  • Debugging: When an error occurs, the call stack provides a trace of the execution path leading up to the error. This helps you pinpoint the exact location where the issue originated and understand the sequence of events that triggered it.
  • Error Handling: By capturing and logging the call stack when an error occurs, you can provide more context to administrators or support teams, making it easier to diagnose and resolve issues.
  • Code Understanding: Analyzing the call stack can help you understand the flow of execution in complex codebases, especially when working with unfamiliar code or trying to understand how different modules interact.

You can combine this with

  • ErrorInfo object (for AL error handling)
  • SessionInformation.UserId() or CompanyName() for full diagnostic logs
var
    CallStack: Text;
    ErrorData: ErrorInfo;
begin
    if not TryMyFunction() then begin
        GetLastError(ErrorData);
        LogToTable('Error: %1 - Stack: %2', ErrorData.Message, SessionInformation.Callstack());
    end;

SessionInformation.Callstack() is a small method with big potential. It’s the AL developer’s X-ray — revealing the path of execution in complex customizations or tangled logic.

Use it smartly, especially in:

  • Error handling routines
  • Long-running jobs
  • Telemetry and diagnostics pipelines

Stay Tuned for more updates

How to kill session in Business Central

Recently faced a problem of table locking which goes in not responding stage and finally user close the tab ,but when user opens the session again it actually messed up the critical data (It seems unimaginable force was roaming that time when this happens). Eventually after trying couple of days for data correction I need to contact Microsoft to restore the database.

When this happening my customer asked me if something like this happen then can we kill or cancel the session of user and then I came across this feature of Business Central admin center.

How to access admin center

This can be by adding tenant id with your business central URL as below

https://businesscentral.dynamics.com/%5BTenant Id]

This will open admin center as below.

In this portal you can see all the environment including sandbox.I can see this is your control center for managing business central on cloud.

Now next step is click on required environment which will navigate to other screen.

To see all the session click on session

This will show you call the required session for the selected environment.

Now to cancel the session select the required session and click on Cancel session .This will kill the required session.

Another advantage of this screen is that it show other information like which operation is going on ,which object is involved in current operation and duration of current operation.

Hope this will help you to cancel the unwanted session

Stay tuned for more..

How to view database locks in business central

Do you remember this screen from classic client where in we can find who has locked whom.

Once we get blocking id then we try to kill those sessions using sql command .

How to view such detail in business central.

This view detail information like which object id and which function is causing the database locks.

Hope this will help you.

Stay tuned for more updates.