I asked AI about that and here is the responce:
Your Syncthing application is crashing due to an internal error within the Go programming language itself, which the program is written in.
What exactly is the problem?
The log clearly shows a critical error:
fatal error: found bad pointer in Go heap (incorrect use of unsafe or cgo?)
To put it simply, an automatic “Garbage Collector” runs inside the program. Its job is to go through the device’s memory, look for unneeded data, and delete it to free up space. At the moment of the crash, this collector stumbled upon a “broken” pointer (a memory reference) that led nowhere or pointed to an incorrect memory area. Out of panic and the inability to continue working, the program shut down unexpectedly (this is called a Panic).
Judging by the first line of your log, you have Syncthing version v2.0.15 installed, which was built using go1.26.0 for the 32-bit linux-arm architecture (for example, a Raspberry Pi or another similar single-board computer / old server).
This is a known and confirmed bug. In Go version 1.26, the developers introduced a new garbage collection mechanism (called Green Tea GC or greenteagc). As it turned out, this mechanism contains bugs on 32-bit systems (386, ARM) and periodically corrupts memory itself, causing the exact same crashes as seen in your log (mgcmark_greenteagc.go -> badPointer). The Syncthing program itself has nothing to do with this — it became a victim of a bug in the development tools.
How to fix it
You can solve this problem in a few ways:
The easiest and fastest way (disable the problematic garbage collector):
You need to run Syncthing with a special environment variable that tells the system: “Use the old, time-tested way of cleaning up memory.”
The variable is called: GOEXPERIMENT=nogreenteagc
- If you run Syncthing manually from the console, the command should look like this:
Bash
GOEXPERIMENT=nogreenteagc syncthing
- If Syncthing runs as a service (a systemd service unit), you need to edit the service file (usually via the command
sudo systemctl edit syncthing@your_name.service) and add this line to the [Service] section:
Ini, TOML
Environment=GOEXPERIMENT=nogreenteagc
After that, restart the service (sudo systemctl restart syncthing). This will completely protect the program from this specific crash.
Update Syncthing:
The Go developers fixed this serious bug in Go version 1.27. Check for Syncthing updates for your distribution. As soon as they release a version built on a newer Go version (1.27 and higher), the crashes will stop on their own.
Use the 64-bit version (if your device allows it):
If your processor supports 64-bit instructions (ARM64), it is highly recommended to reinstall your operating system to a 64-bit one and use Syncthing for arm64. This problem exclusively affects 32-bit builds.