This post is all about error handling in Power Apps with Azure Application Insight. Logging all events in your app (wanted and unwanted) within an easy to use log.
Enable the Application Insight feature
Table of Contents
To enable the Azure Application Insights integration we will first need to enable to Pass errors to Azure Application Insights.
If however you want to also catch any erroring code you will also need to enable the Formula-level error management feature.
Both of these features are experimental so please use these with care.
Create Application Insight Resources
If you haven’t already configured Azure Application Insights then you might want to go to your Azure Portal and create the required resources. It should look something like this:
Once the resources are created you will need to take a copy of the Instrumentation Key. The Instrumentation Key is the link between your Power Apps and your Application Insights configuration.
Now within your app you can use this key. Simply go to your app and set the Instrumentation key property.
Once you have published your app and run the published app (not from Power Apps Studio!), you will find that the Usage reports will show some graphs with details on users, events and so much more.
In this post however I want to focus on the reporting of the error handling.
Using the trace function
In my app I can now write messages to the trace log in my Azure Application Insights using the trace function. The trace function has three parts to it. The Message, the message level and an object that can contain any information. Just to proof the point that the object can be anything I included a typo in one of the properties.
And as users are using my app, the information messages now appear within my log
On the above log you can find information such as who ran the app and when. Just imagine creating a trace every time someone starts the app and you include the version number of the app in the details. You never need to ask a user which version they were running again!
So far I only used an information message. Although very useful in many ways, you might also want to report errors in the code. Maybe even automatically log a ticket in your helpdesk system when things go wrong, or email a developer to fix the issues.
Now, I’m going to make use of the IfError function to identify issues within my horrible code.
Both my Patch and my Set lines of code will fail and the IfError function will now run the Trace to report the issues. Notice that the Severity Level of the error has been changed to Error
Now when I run the app and click on the button I will see the error message coming through.