Troubleshooting
August 5, 2026 ยท View on GitHub
Connection issues
"Connection failed" or peers can't find each other
- Both peers need IPv6. Test at test-ipv6.com, you need at least 9/10.
- The connection is full-duplex: each peer listens on an inbound port and connects to the other's inbound port. Check your firewall allows inbound TCP on both configured ports (defaults: 26431 inbound, 26432 outbound).
- Check your router doesn't block IPv6 inbound connections.
- Both peers must use the same relay server.
Rate limit errors
The public relay limits requests per IP. Wait a few minutes and try again. For heavy testing, run a local relay.
FUSE issues
"FUSE not detected"
macOS:
# Install macFUSE from https://macfuse.github.io/
# Restart your Mac after installation
Linux (Debian/Ubuntu):
sudo apt install fuse3
Linux (Fedora):
sudo dnf install fuse3
"Permission denied" when opening files from FUSE mount
Other apps (Finder, Preview, file managers) can't access FUSE mounts unless allow_other is enabled.
macOS:
sudo sh -c 'echo "user_allow_other" > /etc/fuse.conf'
Linux:
# Uncomment or add "user_allow_other" in /etc/fuse.conf
sudo sed -i 's/#user_allow_other/user_allow_other/' /etc/fuse.conf
Then remount (disconnect and reconnect, or restart KEIBIDROP).
macFUSE kernel extension blocked (macOS)
Go to System Settings > Privacy & Security and allow the macFUSE extension.
On macOS 15.4+, macFUSE supports the FSKit backend which runs in user space, no kernel extension needed. Enable it in System Settings > macFUSE > Use FSKit.
FUSE mount not cleaning up
If KEIBIDROP crashes and the mount point is stale:
macOS:
sudo /sbin/umount -f /path/to/mount
Linux:
fusermount3 -u /path/to/mount # normal unmount
fusermount3 -z /path/to/mount # force (lazy) unmount
Build issues
pthread.h or stdlib.h not found (macOS)
xcode-select --install
CGO errors (macOS)
export CGO_ENABLED=1
xcode-select --install
Go must use clang on macOS. Check with go env CC. If it shows gcc:
export CC=clang
CGO errors (Linux)
export CGO_ENABLED=1
sudo apt install build-essential
Rust build fails with missing libkeibidrop.a
Build the Go static library first:
make build-static-rust-bridge
cd rust && cargo build --release
protoc-gen-go: program not found
The generated code is committed, so you can build without protoc:
make build-static-rust-bridge
cd rust && cargo build --release
If you want to regenerate protobuf stubs:
macOS:
brew install protobuf
make install-proto
make protoc
Linux:
sudo apt install protobuf-compiler
make install-proto
make protoc
Files and logs
Where is the config file?
~/.config/keibidrop/config.toml, created on first run with default values.
Where are log files?
macOS: ~/Library/Logs/KeibiDrop/keibidrop.log
Linux: ~/.local/share/keibidrop/keibidrop.log
Override with the LOG_FILE environment variable or log_file in config.toml.
Where are received files saved?
Default: ~/KeibiDrop/Received/
Override with TO_SAVE_PATH environment variable or save_path in config.toml.
Platform notes
macOS
- Requires macFUSE for FUSE mode. Works without it in no-FUSE mode.
- Apple Silicon and Intel both supported.
- macOS 15.4+ can use the FSKit backend (no kernel extension).
Linux
- Requires
fuse3andlibfuse3-dev(for building from source). - Tested on Ubuntu 22.04+ (x86_64).
- ARM64 Linux support available for CLI binaries.
Windows
Works in both modes. FUSE mode requires WinFsp (2.1 or later recommended); the mount appears as a drive letter, and the mount point must not already exist.