Trouble Shooting

Crash reporting can sometimes be tricky to get going. If you're having trouble, see if you're effected by some these common setup issues. If you have another issue please get in touch.

There are many reasons why crash reports may not be sent through.

Raygun providers have an throwOnError property; set to false by default. Setting this to true will allow any errors occurring in Raygun4Net to bubble up the stack, and be reported as an unhandled exception.

Add this attribute in the raygun4Net Config section or enable it in the config options of the client:

<RaygunSettings apikey="YOUR_API_KEY" throwOnError="true"/>

Internal errors will be sent to the OS the event viewer. Alternatively you could attach a trace listener and log to a text file as well.

If the Event Viewer error message mentions "The underlying connection was closed: An unexpected error occurred on a send." This is probably a TLS handshake issue (See Below). Confirm this by inspecting the inner exception or the rest of the trace and look for a cipher mismatch phrase.

To ensure compliance with relevant security standards, Raygun's ingestion nodes require events to be sent using the current security cypher suite.

Specifically, we support TLS 1.1 and TLS 1.2 This may mean that the OS or browsers you are using, with Raygun Crash Reporting, will need to be updated.

To see if a browser supports TLS 1.1 or TLS 1.2 please check:

To see if your Windows hosting environment supports TLS 1.1 or TLS 1.2 please check: Windows: TLS protocol version support

For other operating systems, please check with the manufacturer.

Re-setting an application API key, will require deploying the updated API key to your apps configuration.

Please check the API key matches the Raygun Application expecting to see crash reports in. You can check the API key by:

  1. Selecting the Raygun Application (Top menu)
  2. Clicking "Application settings" in the left-hand menu
  3. Checking the field Api Key

Please double check that you application was built and deployed correctly, and the deployment configuration settings of your Production Application API Key are set correctly.

You can send a test Crash Report from your server to check if there any networking issues which need to be addressed. (e.g., a firewall which need a whitelist rule added)

Here is an example powershell script which can be used:

$apikey = 'YOUR_API_KEY'

$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("X-ApiKey", $apikey)
$headers.Add("Content-Type", "application/json")

$occurredOn = [datetime]::Now.ToUniversalTime().ToString("o");

$body = "{
`n    `"OccurredOn`": `"$occurredOn`",
`n    `"Details`": {
`n        `"MachineName`": `"WIN-0HOJHN7A0D7`",
`n        `"Version`": `"Not supplied`",
`n        `"Error`": {
`n            `"Data`": {},
`n            `"ClassName`": `"Demo123`",
`n            `"Message`": `"Powershell to Raygun test`",
`n            `"StackTrace`": [
`n                {
`n                    `"LineNumber`": 15,
`n                    `"ClassName`": `"test test ya`",
`n                    `"MethodName`": `"methodname`"
`n                },
`n                {
`n                    `"LineNumber`": 15,
`n                    `"ClassName`": `"critical`",
`n                    `"MethodName`": `"awesomesauceness`"
`n                },
`n                {
`n                    `"LineNumber`": 0,
`n                    `"ClassName`": `"bar`",
`n                    `"MethodName`": `"bare`"
`n                },
`n                {
`n                    `"LineNumber`": 0,
`n                    `"ClassName`": `"test`",
`n                    `"MethodName`": `"testerestser`"
`n                }
`n            ]
`n        },
`n        `"Environment`": {
`n            `"ProcessorCount`": 99,
`n            `"OSVersion`": `"6.2.9200`",
`n            `"WindowBoundsWidth`": 1024,
`n            `"WindowBoundsHeight`": 768,
`n            `"Cpu`": `"Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz`",
`n            `"Architecture`": `"AMD64`",
`n            `"TotalVirtualMemory`": 8388607,
`n            `"AvailableVirtualMemory`": 8379462,
`n            `"DiskSpaceFree`": [
`n                55.498355865478516,
`n                52.96750259399414,
`n                21.393081665039062
`n            ],
`n            `"TotalPhysicalMemory`": 7679,
`n            `"AvailablePhysicalMemory`": 2570,
`n            `"UtcOffset`": 12,
`n            `"Locale`": `"English (United States)`"
`n        },
`n        `"Client`": {
`n            `"Name`": `"Raygun4Net4.0`",
`n            `"Version`": `"`",
`n            `"ClientUrl`": `"`"
`n        },
`n        `"UserCustomData`": {
`n            `"handler`": `"From Raygun4JS snippet global error handler`"
`n        },
`n        `"Tags`": [
`n            `"Awesome`",
`n            `"Critical`"
`n        ],
`n        `"User`": {
`n            `"Identifier`": `"123users1nique_id1`",
`n            `"IsAnonymous`": `"`",
`n            `"Email`": `"emailAddr`",
`n            `"FullName`": `"A Full Name`",
`n            `"FirstName`": `"A First Name`",
`n            `"UUID`": `"uuid`"
`n        },
`n        `"Response`": {
`n            `"statusCode`": 404,
`n            `"statusDescription`": `"Not Found`"
`n        }
`n    }

$response = Invoke-RestMethod '' -Method 'POST' -Headers $headers -Body $body
$response | ConvertTo-Json

An empty {} 201 response means the event reached the Raygun servers correctly.

You should see a fake error "Demo123: Powershell to Raygun test" when you refresh the Raygun Application page.

If you have setup a server-side Raygun provider, you may also need to setup the the client-side provider to get browser errors.

Insert the raygun4js snippet into the of the html document

<script type="text/javascript">
      h&&h(b,c,d,f,g),g||(g=new Error(b)),a[e].q=a[e].q||[],a[e].q.push({
    <script type="text/javascript">
      rg4js('apiKey', '@Configuration["RaygunSettings:ApiKey"]');
      rg4js('enableCrashReporting', true);
      rg4js('enableRUM', true); <!-- optional, enable RealUserMonitoring -->

Please check that rg4js('enableCrashReporting', true); has been set.

You may also want to check enable Raygun Real User Monitoring (RUM) has been enabled with the rg4js('enableCrashReporting', true); setting.

Some Browsers extensions mistakenly think that the raygun js provider is an advertizing script.

Please get in touch, and let us know the details, if this happens to you. So we can get Raygun added to the extension white list.

Some times a bug in a mobile app will crash the whole application, before the Raygun provider has had a chance to send the event to the Raygun servers. The Raygun provider however, will endeavor to try and resend the error when the app next starts.