Go, Rust & Systems Errors
30 articles in this category
Systems languages move errors earlier: the Rust borrow checker catches at compile time what GC languages would catch at runtime (or never). Go is simpler but its concurrency model — goroutines and channels — has its own deadlock patterns. C++ adds linker, ABI, and template instantiation errors on top.
Recommended starting points:
- Rust borrow checker error — the canonical Rust pain point.
- Go channel deadlock — fan-in/fan-out misuse.
- Go goroutine deadlock — leaks vs deadlocks.
All articles (30)
Fix: sqlc Not Working — sqlc.yaml v2, pgx/v5 Driver, Nullable Types, JSONB, and Array Parameters
How to fix Go sqlc errors — sqlc.yaml v2 config schema, pgx/v5 vs database/sql driver choice, sql.NullString vs pointer types, JSONB and UUID overrides, ANY($1::int[]) slice params, and migration ordering.
Fix: Taskfile Not Working — Variables, Sources/Generates, Includes, Watch, and Run-Once Semantics
How to fix Task (go-task) errors — Taskfile.yml not found, vars interpolation, sources/generates fingerprint, includes scoping, watch mode glob, deps parallel execution, and run: once preventing reruns.
Fix: Maturin Not Working — develop Errors, ABI3 Wheels, manylinux, and macOS Universal Builds
How to fix Maturin errors — maturin develop fails outside venv, abi3 forward compatibility, manylinux wheel auditing, macOS universal2 cross-compile, pyproject.toml vs Cargo.toml conflicts, and PyO3 feature flags.
Fix: PyO3 Not Working — Bound API Migration, GIL Acquisition, Error Conversion, and NumPy Interop
How to fix PyO3 errors — &PyAny vs Bound<PyAny> migration, GIL acquire/release patterns, returning Rust errors as Python exceptions, numpy ndarray zero-copy, pyclass frozen, and async tokio integration.
Fix: Tauri 2 Not Working — Capabilities, Plugin Permissions, Mobile Build, and v1 Migration
How to fix Tauri 2 errors — invoke command not allowed by capabilities, plugin permission missing, tauri.conf.json schema, mobile init/build failures, updater migration, and v1 allowlist conversion.
Fix: Tauri Not Working — Command Not Found, IPC Error, File System Permission Denied, or Build Fails
How to fix Tauri app issues — Rust command registration, invoke IPC, tauri.conf.json permissions, fs scope, window management, and common build errors on Windows/macOS/Linux.
Fix: Go Test Not Working — Tests Not Running, Failing Unexpectedly, or Coverage Not Collected
How to fix Go testing issues — test function naming, table-driven tests, t.Run subtests, httptest, testify assertions, and common go test flag errors.
Fix: Rust Error Handling Not Working — ? Operator, Custom Error Types, and thiserror/anyhow
How to fix Rust error handling issues — the ? operator, From trait for error conversion, thiserror for custom errors, anyhow for applications, and Box<dyn Error> pitfalls.
Fix: Go Generics Type Constraint Error — Does Not Implement or Cannot Use as Type
How to fix Go generics errors — type constraints, interface vs constraint, comparable, union types, type inference failures, and common generic function pitfalls.
Fix: Go Deadlock — all goroutines are asleep, deadlock!
How to fix Go channel deadlocks — unbuffered vs buffered channels, missing goroutines, select statements, closing channels, sync primitives, and detecting deadlocks with go race detector.
Fix: Go Error Handling Not Working — errors.Is, errors.As, and Wrapping
How to fix Go error handling — errors.Is vs ==, errors.As for type extraction, fmt.Errorf %w for wrapping, sentinel errors, custom error types, and stack traces.
Fix: Go Panic Not Recovered — panic/recover Patterns and Common Pitfalls
How to handle Go panics correctly — recover() placement, goroutine panics, HTTP middleware recovery, defer ordering, distinguishing panics from errors, and when not to use recover.
Fix: Go Goroutine Leak — Goroutines That Never Exit
How to find and fix goroutine leaks in Go — detecting leaks with pprof and goleak, blocked channel patterns, context cancellation, and goroutine lifecycle management.
Fix: Go Interface Nil Panic — Non-Nil Interface Holding a Nil Pointer
How to fix the Go interface nil trap — understanding non-nil interfaces with nil pointers, detecting the issue, error interface patterns, and designing APIs to avoid the pitfall.
Fix: Go Concurrent Map Read and Write Panic — fatal error: concurrent map
How to fix Go's concurrent map read and write panic — using sync.RWMutex, sync.Map, atomic operations, and structuring code to avoid shared state.
Fix: Go context deadline exceeded / context canceled
How to fix Go context.DeadlineExceeded and context.Canceled errors — setting timeouts correctly, propagating context through call chains, handling cancellation, and debugging which operation timed out.
Fix: Go panic: runtime error: invalid memory address or nil pointer dereference
How to fix Go nil pointer dereference panics — checking for nil before use, nil interface traps, nil map writes, receiver methods on nil, and defensive nil handling patterns.
Fix: CMake Could Not Find Package Configuration File
How to fix the CMake error 'Could not find a package configuration file' for find_package, covering CMAKE_PREFIX_PATH, dev packages, vcpkg, Conan, module mode, toolchain files, and cross-compilation.
Fix: Go cannot find package / no required module provides package
How to fix 'cannot find package' and 'no required module provides package' errors in Go by syncing dependencies, fixing import paths, configuring private repos, and resolving workspace issues.
Fix: Go fatal error: all goroutines are asleep - deadlock!
How to fix Go fatal error all goroutines are asleep deadlock caused by unbuffered channels, missing goroutines, WaitGroup misuse, and channel direction errors.
Fix: Go panic: runtime error: index out of range
How to fix Go panic runtime error index out of range caused by empty slices, off-by-one errors, nil slices, concurrent access, and missing bounds checks.
Fix: Go cannot use X (type Y) as type Z in argument
How to fix Go 'cannot use as type' error caused by type mismatches, interface satisfaction, pointer vs value receivers, type conversions, and generic constraints.
Fix: Go undefined: variable (or function)
How to fix Go undefined error caused by undeclared variables, wrong package scope, unexported names, missing imports, build tags, and file organization issues.
Fix: Rust cannot borrow as mutable because it is also borrowed as immutable
How to fix Rust cannot borrow as mutable error caused by aliasing rules, simultaneous references, iterator invalidation, struct method conflicts, and lifetime issues.
Fix: Rust lifetime may not live long enough / missing lifetime specifier
How to fix Rust lifetime errors including missing lifetime specifier, may not live long enough, borrowed value does not live long enough, and dangling references.
Fix: Rust the trait X is not implemented for Y (E0277)
How to fix Rust compiler error E0277 'the trait X is not implemented for Y' with solutions for derive macros, manual trait implementations, Send/Sync bounds, trait objects, and generics.
Fix: Go Module Not Found – cannot find module providing package
How to fix the Go error 'cannot find module providing package' caused by missing go.mod, wrong module path, private repos, or GOPATH issues.
Fix: Rust Borrow Checker Errors – Cannot Borrow as Mutable, Value Moved, and Lifetimes
How to fix common Rust borrow checker errors including 'cannot borrow as mutable', 'value used after move', and lifetime annotation issues.
Fix: Go declared and not used / imported and not used (compile error)
How to fix 'declared and not used' and 'imported and not used' compile errors in Go. Covers blank identifiers, goimports, gopls, build tags, conditional compilation, and common edge cases.
Fix: no required module provides package / cannot find package in Go
How to fix 'no required module provides package', 'cannot find package', and 'module not found' errors in Go. Covers go mod init, go mod tidy, go get, GOPATH vs Go modules, GO111MODULE, GOPROXY, GOPRIVATE, replace directives, vendor directory, go.work workspaces, and major version suffixes.