Strip the trace from error messages
A solution to reduce excessive egress bandwidth from scheduling when rounds fail. By stripping verbose Go stack traces from error messages, there is an estimated 90% bandwidth reduction for failed round communications while preserving debugging information.
Before (with stack traces):
Round Error from node: Received error polling for permissioning: Cannot move to precomputing state: Timed out connecting to nodes: [node123] gitlab.com/elixxir/server/io.VerifyServersOnline /builds/elixxir/server/io/transmitAskOnline.go:76
[... 20+ more lines]
Size: ~1,800 bytes
After (sanitized):
Round Error from node: Received error polling for permissioning: Cannot move to precomputing state: Timed out connecting to nodes: [node123]
Size: ~150 bytes
Additional Benefits:
- Reduces database storage for error logs
- Faster query performance on error tables
- Maintains debugging context (error type, affected nodes, root cause)
- 500 character limit prevents unbounded error growth
- No server/gateway changes required
- Forward and backward compatible (See attached files)