#Error Handling

1 Follower · 88 Posts

Error handling refers to the response and recovery procedures from error conditions present in a software application. It is the process comprised of anticipation, detection and resolution of application errors, programming errors or communication errors.

Learn more.

Question Flávio Lúcio Naves Júnior · Mar 6

Hi everyone,

I am trying to configure a FHIR Server to authenticate against an external OAuth server using the OAuth FHIR Client Quickstart, which is available in the newer versions of InterSystems IRIS for Health.

During the configuration process I am encountering an issuer validation error.

I have already verified the issuer URL, and it exactly matches the value returned by the OAuth server’s OpenID configuration endpoint (.well-known/openid-configuration).

Example:

Issuer configured in IRIS
https://login.microsoftonline.com/{tenant-id}/v2.0

Issuer returned by the OpenID configuration
https://login.

3
0 74
Question Scott Roth · Oct 22, 2025

I am looking for a way to capture Data Quality issues with the Source data that is populating HealthShare Provider Directory. 1 way is to use Managed Alerts, but since it could be multiple Providers and different messages it seems silly to alert on every message that has the error. Instead, I was thinking of using the Workflow Engine so it could populate a Worklist for someone to review and work.

Looking over the Demo.Workflow Engine example, I am not comprehending on how to send a task to the Workflow manager to populate the worklist from a DTL.

2
0 83
Question Evgeny Shvarov · Dec 26, 2025

Hi developers!
Happy holidays!

In ObjectScript there is neat option to log errors - call Log() method of an exception intance, e.g.:

ClassMethod MyMethod() {

Try {

w 1/0

}

Catch e {

do e.Log() // logging error in the app log

write "the error happened: "_e.DisplayString()

}

}

Is there anything like that for Embedded Python? e.g:

ClassMethod MyMethod() [Language = python] {

 try:

   print(1/0)

 except ZeroDivisionError as e:

   // how can I log e into IRIS App Error Log here?

   print("Caught exception: " + str(e))

}

Any ideas?

8
0 99
Question Hassan Mirza · Nov 13, 2025

Working on interfaces, trying to add simple email alert (link below) under "Operations"

https://docs.intersystems.com/healthconnect20231/csp/docbook/DocBook.UI…

if the message is good,  health connect processes ok.

if the message has an ERROR, it held up the message in Queue (keep retrying), then subsequent messages held up in the queue as well to be processed. Because of the message held up in Queue, Operation for TCP connection also turning blue.

Please advice.

3
0 151
Question Mark OReilly · Nov 7, 2025

Trying to check date in DTL. 

Want to throw a custom error not the default one from the $ZDTH. It does in the try as will write "Error" when testing the DTL but the actual error not showing. Report errors is turned on.  I also tried the THROW logic from best practices but that doesn't work either. $SYSTEM.Status.DisplayError(status) does display what the error should be returned. 

 try 
 {
    set tDateH = $ZDATEH(tDateofDeath, 8)
 }
 catch ex 
 { 
  w "error"
 set status = $$$ERROR($$$GeneralError,"Custom error message")
 do $SYSTEM.Status.DisplayError(status)
 do $SystemStatus.
5
0 155
Article Zion Amsalem · Nov 9, 2025 3m read

As a developer who uses Cache as DB for a couple of projects, I'm using REST API's every time, knowing how to consume a resource from REST API, in my opinion, it's crucial to know how to consume external REST Api's using %Net.HttpRequest because it enables integration with modern web applications and services, and it's a crucial skill for a backend developer who loves and uses Cache as a DB.

What and who is %Net.

0
1 134
Question Mark OReilly · Oct 27, 2025

We are trying to mark a hl7 nack as "completed" to ignore an error and not generate the alert. 

We can remove from adding a managed alert or add another router in 

When Nack of CR of 

Date of birth in PID.7 must not be empty

We tried via this but i think it's only for an actual IRIS alert errror not the HL7 error code/description 

E*Date of birth in PID.7 must not be empty=C,:?CR=C,:?R=RF,:?E=S,:~=S,:?A=C,:*=S,:I?=W,:T?=C

3
0 97
Question Chris Lambert · Aug 21, 2025

Hello,

I'm trying to get the Reply Action Code to work with the error message text.

I have this ACK:

MSH|^~\&|APP|FACIL|||20250821143621||ACK|CUEACK_20250821143621|P|2.4
MSA|AE||Failed to queue message

This is some of the Action Codes I've tried:

  • E*Failed to queue message=S
  • E*Failed=S
  • E*"Failed to queue message"=S
  • :E*Failed to queue message=S
  • :?E*Failed to queue message=S

It's not suspending the message however.

What am I doing wrong?

Thank you

2
0 112
Article Timothy Leavitt · Jul 24, 2025 4m read

Let's start with a simple motivating question: over the past 14 days, what are my most common errors in the Application Error Log?

Answering this through the management portal or terminal is an annoying manual process - we should just be able to use SQL. Fortunately, there are a few class queries to help with this in the SYS.ApplicationError class in the %SYS namespace. You can answer the question for a single date with something like:

select "Error message",count(*)
from SYS.
2
3 356
Question Anna Golitsyna · Jun 2, 2025
  1. I like the Application Error Log functionality a lot. However, it becomes time consuming to inspect it date by date and directory by directory on a multidirectory server. Ideally, I would use an existing error class to write a custom error report by date, selected namespaces, etc. Does such a system class actually exist? Not that I found. The detail level on the screenshot below is enough.  
  2. Some Application Error Logs go back a couple of years and load for a long while. Is there any programmatic way to clean them?
10
0 231
Article David Hockenbroch · Apr 22, 2025 7m read

The Good Old Days

The %Library.DynamicObject class has been in IRIS since before it became IRIS. If you have been using it since the Cache days, you may want to brush up on some of its changes.

In Cache 2018, the %Get method only had one argument. It was the key to retrieving from the JSON, meaning that if your JSON object called myObj, it would look like the following:

3
3 413