New in version 1.2.0: Automatic crash reporting is available from version 1.2.0.

Automatic Crash Reporting

Automatic crash reporting sends reports of crashes or “panics” to the developers of Syncthing. This crash report contains the version information of Syncthing (equivalent to the output of syncthing --version) and a technical trace of what the various threads / routines in Syncthing were doing at the time of the crash.

The crash report does not include log data, file names, device IDs, statistics, a unique identifier, or any other personally identifiable information. Crash reporting is enabled out of the box for most users, but can be disabled in the advanced configuration dialog.

The following is an example of a crash report as sent:

  1. 07:48:24 INFO: syncthing v1.1.4-rc.1+24-g39ecb7ad-quic3 "Erbium Earthworm" (go1.12.5 darwin-amd64) jb@kvin.kastelo.net 2019-05-21 20:36:38 UTC
  2. Panic at 2019-05-22T07:48:25+02:00
  3. panic: interface conversion: *pfilter.FilteredConn is not net.Conn: missing method Read
  4. goroutine 106 [running]:
  5. github.com/syncthing/syncthing/lib/connections.(*quicListener).Serve(0xc000158000)
  6. /buildagent/work/github.com/syncthing/syncthing/lib/connections/quic_listen.go:74 +0x41b
  7. github.com/thejerf/suture.(*Supervisor).runService.func1(0xc0001c6690, 0xc000000000, 0x54b4728, 0xc000158000)
  8. /Users/jb/go/pkg/mod/github.com/thejerf/suture@v3.0.2+incompatible/supervisor.go:600 +0x47
  9. created by github.com/thejerf/suture.(*Supervisor).runService
  10. /Users/jb/go/pkg/mod/github.com/thejerf/suture@v3.0.2+incompatible/supervisor.go:588 +0x5b
  11. goroutine 1 [runnable]:
  12. github.com/syncthing/syncthing/lib/auto.Assets(0xc0000fa280)
  13. /buildagent/work/github.com/syncthing/syncthing/lib/auto/gui.files.go:131 +0x4936
  14. github.com/syncthing/syncthing/lib/api.newStaticsServer(0xc0002229b5, 0x7, 0xc00003a300, 0x33, 0xc00022297c)
  15. /buildagent/work/github.com/syncthing/syncthing/lib/api/api_statics.go:38 +0x37
  16. github.com/syncthing/syncthing/lib/api.New(0x5d4a557355ee1a96, 0x95ccd59f7d44241, 0x23a9c69bae83ac87, 0x6ee52bc80a137f7b, 0x4c4bb20, 0xc000069800, 0xc00003a300, 0x33, 0x496ae2c, 0x9, ...)
  17. /buildagent/work/github.com/syncthing/syncthing/lib/api/api.go:108 +0xb1
  18. main.setupGUI(0xc000296000, 0x4c4bb20, 0xc000069800, 0x4c504e0, 0xc000148000, 0x4c27aa0, 0xc0001565f0, 0x4c27aa0, 0xc000156690, 0x4c42820, ...)
  19. /buildagent/work/github.com/syncthing/syncthing/cmd/syncthing/main.go:1092 +0x31f
  20. main.syncthingMain(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x49651b4, 0x1, 0x0, 0x0, ...)
  21. /buildagent/work/github.com/syncthing/syncthing/cmd/syncthing/main.go:873 +0x1bc5

Note that the username and hostname of the machine where Syncthing was built will be included in the crash log as part of the version string. This information is essential for the developers to interpret the log in context. If you compile Syncthing locally and want to prevent your build from having such data embedded, see Version Tagging.

For a more detailed description of the format and how the sending happens, see Automatic Crash Reporting for Developers.