Troubleshooting¶
Where to look¶
sudo journalctl -u maxiofs -n 200 # package or systemd install
docker logs --tail 200 maxiofs # Docker
maxiofs --data-dir ./data --log-level debug # foreground, verbose
The Audit Logs page shows refused sign-ins and requests, and the bell in the console shows alerts.
The server does not start¶
| Log says | Fix |
|---|---|
address already in use |
Another process holds 8080 or 8081: ss -ltnp \| grep -E '8080\|8081' |
permission denied on the data directory |
sudo chown -R maxiofs:maxiofs /var/lib/maxiofs |
| A YAML error | Check config.yaml indentation; quote values with : or # |
| An interrupted write could not be rolled back | Stop it and run maxiofs reconcile: it reports what it could not resolve and keeps those copies on disk for review |
pebble: corruption |
The metadata index is damaged: rebuild it with maxiofs recover |
Cannot reach the console¶
- Answers locally, not from outside: the firewall, or
console_listenbound to127.0.0.1. - Through a proxy, blank page or errors: check the proxy forwards to
8081 and passes
HostandX-Forwarded-Proto.
Cannot sign in¶
| Symptom | Cause |
|---|---|
| "Account locked" | Too many failed attempts. Wait for security.lockout_duration, or an administrator clicks Unlock account on the user. |
| Too many attempts from one address | The sign-in rate limit per IP; it counts failures only |
| An identity provider user is refused | They are in no mapped group and were not imported: see Identity Providers |
| An identity provider is down | Sign-ins through it answer 503; local accounts still work |
The administrator password can also be changed by another global administrator. Create a second administrator account and keep it for emergencies.
S3 clients fail¶
| Error | Cause |
|---|---|
SignatureDoesNotMatch |
Wrong secret key, or a proxy rewrote Host |
InvalidAccessKeyId |
The key was deleted or belongs to another installation |
RequestTimeTooSkewed |
Client and server clocks differ by more than 15 minutes: run NTP on both |
AccessDenied |
The user's permissions, the bucket policy, Block Public Access, or Object Lock refuse it. The audit log names which. |
QuotaExceeded |
The bucket's or tenant's quota is full |
SlowDown |
The server asks the client to back off for a moment; clients retry by themselves |
507 InsufficientStorage |
The disk is 99.5% full. Reads and deletes still work: delete data, add a lifecycle rule, or grow the volume |
NoSuchBucket with virtual-hosted addresses |
Wildcard DNS or public_api_url missing: use path style, see rclone, s3cmd and mc |
The disk fills up¶
- Dashboard → Top Buckets shows where the space goes.
- Old versions are often the cause in versioned buckets: add a lifecycle rule with noncurrent version expiration.
- Abandoned multipart uploads hold space too: a rule that aborts
incomplete uploads, or
storage.abort_incomplete_multipart_daysfor all buckets.
Alerts fire at the thresholds of Settings → System before writes stop.
A cluster node shows unhealthy¶
- Check the node is running and its port 8082 is reachable from the others.
- Check the clocks: all nodes must run NTP.
- A node that answers again returns to service by itself and is caught up.
The full cluster runbook is in Operations.