3

I'm looking at a server running IIS 7.5 that is throwing generic HTTP 500s for some requests, with no further error reporting or substatus code evident anywhere. So I enabled Failed Request Tracing and the trace report for the failing requests shows a TRIGGER_STATUS of 500 and a FINAL_STATUS of 200. Can anyone explain what the difference between TRIGGER_STATUS and FINAL_STATUS is and why they would not be identical?

James Lupolt
  • 624
  • 1
  • 7
  • 18

1 Answers1

1

The trigger status is the status the FREB rule triggered on and the final status is the HTTP status the client got and also what you will see in your access log.

I ran into this combination of status codes in FREB when tracing requests with a quite big request payload. I solved it by increasing the default log size setting for FREB to 1024kB, the default is 512kB.

Run this command in a cmd.exe prompt:

cd /d "%windir%\system32\inetsrv"
appcmd set config /section:sites -siteDefaults.traceFailedRequestsLogging.maxLogFileSizeKB:1024

You can reset this setting to the default using:

appcmd set config /section:sites -siteDefaults.traceFailedRequestsLogging.maxLogFileSizeKB:512

Reference: FREB: LOG_FILE_MAX_SIZE_TRUNCATE

  • 1
    Some explanation what is going on here? – vonbrand Mar 27 '13 at 10:10
  • 1
    can you elaborate on that comment? thanks :) – Johan Andersson Mar 28 '13 at 12:46
  • Thanks for the details about trigger and final status. IIRC, these were totally undocumented when I last looked. I knew about LOG_FILE_MAX_SIZE_TRUNCATE, but I'm unclear what was solved solved by adjusting this. Do you mean that FREB logged some more details that had been getting truncated before adjusting the setting, or something else? – James Lupolt Apr 05 '13 at 11:39
  • With regard to vonbrand's comment, I'm guessing he's looking for details on why IIS would encounter a condition that resulted in HTTP 500 status but return 200 to the user. I think that's the dilemma -- the meanings of 'trigger status' and 'final status' are somewhat intuitive based on their names, but I have no idea why a web server would function this way. – James Lupolt Apr 05 '13 at 11:41
  • "The trigger status is the status the FREB rule triggered on and the final status is the HTTP status the client got" - I somewhat doubt this. I am [looking at a log](https://stackoverflow.com/q/60865362/1430156) with exactly this combination (trigger status = 500, final status = 200), yet the HTTP status code received on the client side is 500. – O. R. Mapper Mar 30 '20 at 05:38