Every time a function runs, XFORG records what it received, what it returned and where it failed. Use that history to find and fix problems.
Open a function and choose the Runs tab. Recent runs lists its last 100 runs from every source, so your tests sit next to what happened on the live site. Click Refresh to update it.
Status
Succeeded, Failed or Timed out.
Source
Event, Schedule, Form, Page or Test.
Duration
How long the run took.
Error
What went wrong, when something did.
Click Details on a run to see:
Inputs it received.
Outputs it produced.
Failed at node: the node where the run stopped.
Execution trace: each node that ran before the failure, with what it received and returned. The trace is kept for failures only, and covers the most recent 40 nodes.
A failed event or scheduled run has the option Run this again with the same data. It runs through the function as it is now, with the payload and row it originally received.
1
Find the cause
Read the failed node and the trace.
2
Fix the function
Save and test your change.
3
Retry
Click Run this again with the same data, then check the history for how it went.
A retry is a real run. Its database changes are kept, and it calls external APIs again.
Runs from pages, forms and tests cannot be replayed: they ran for a signed-in visitor that cannot be reconstructed. A run that succeeded cannot be retried either.
Any value stored under a name that points to a secret, such as password, secret, token, master key, API key, authorization or credential, is saved as [redacted]. Every other copy of that same value in the run is redacted too.
Name the inputs and ports that carry a secret after what they hold, for example password or apiKey, so they are kept out of history.
A retry replays the redacted inputs, so it cannot resend a secret.
Most problems show up clearly when you compare a failed run with a test that worked.
If a function passes its test but fails on real events, compare the inputs of a failed run with your test inputs.
Event and scheduled runs have 10 seconds. A slow external API can make them time out.
For scheduled triggers, the Triggers tab also shows how the last run went, including when some rows failed.