Object & Block Storage Errors
S3 permissions, NFS mounts, quotas, signed URLs and volume attachment.
Understanding Storage errors
Storage errors are dominated by permissions and locality. S3 access denials can come from an IAM policy, a bucket policy, a Block Public Access setting, an ACL or a KMS key policy: five independent layers, all of which must allow the call. Block storage errors are usually about availability zones: a volume can only attach to an instance in the same AZ.
How to debug Storage errors
- For S3 denials, check all five layers: IAM policy, bucket policy, Block Public Access, object ACL and the KMS key policy if the object is encrypted with a customer-managed key.
- Confirm the region and the exact bucket name. A bucket in another region returns a redirect or a permanent error that reads like a permission problem.
- For signed URLs, check the expiry and that the clock on the signing machine is correct. A skewed clock produces URLs that are already expired.
- For NFS stale file handles, remount rather than retrying; the file the handle referred to no longer exists on the server.
- For volume attachment failures, verify the availability zone matches and that the volume is in the
availablestate, not still attached elsewhere.
Tools worth reaching for
aws s3api get-bucket-policyIAM Policy Simulatormount -v / showmount -edf -h / du -shaws ec2 describe-volumes
All 19 Storage errors
- AWS S3: Access Denied on an object encrypted with KMS NewThe bucket policy allows the read but the caller has no permission on the KMS key, so S3 cannot decrypt the object for…
- AWS S3: Bucket does not existSpecified S3 bucket doesn't exist or is in different region.
- AWS S3: SignatureDoesNotMatch NewThe SigV4 signature computed by the client differs from the one S3 computed. Causes: wrong secret key, clock skew…
- AWS: EBS volume not available in AZAn EBS volume cannot be attached to an EC2 instance because they are in different Availability Zones. EBS volumes are…
- Azure Blob: Lease conflictBlob is leased by another client. Cannot modify until lease expires or is released.
- Azure Storage: AuthorizationPermissionMismatch NewYou are signed in with Entra ID, and your role lets you manage the storage account but not read its data. Owner and…
- Browser: Storage quota exceededlocalStorage or IndexedDB quota exceeded. Browser has storage limits per origin.
- Ceph: OSD downA Ceph Object Storage Daemon is not running, reducing cluster redundancy and potentially causing degraded performance.
- Google Cloud Storage: Signed URL expiredGCS signed URL has exceeded its expiration time. Need to generate new signed URL.
- Linux: mount error(13): Permission denied (CIFS/SMB) NewThe SMB server rejected the credentials or the requested protocol. Common causes are a domain user given without the…
- mount: wrong fs type, bad option, bad superblock on /dev/sdb1 Newmount gives this one generic message for several unrelated failures, and the real reason is only in the kernel log…
- NFS: Mount timeoutNFS mount operation timed out. Server unreachable, firewall blocking, or NFS service down.
- NFS: Stale file handleThe NFS client holds a reference to a file or directory that no longer exists on the server, usually after the export…
- S3: Access denied by bucket policyS3 bucket policy explicitly denies access. Need to update bucket policy or IAM permissions.
- S3: Eventual consistency causing read-after-write issuesReading S3 object immediately after write may return old version due to eventual consistency.
- S3: SlowDown: Please reduce your request rate (503) NewS3 is throttling requests to one key prefix, not your whole account. Each prefix supports around 3,500 writes and…
- S3: The requested bucket name is not available (BucketAlreadyExists) NewBucket names are global across every AWS account in a partition, so somebody else already owns this one, possibly…
- Structure needs cleaning NewThis is EUCLEAN, the kernel saying the filesystem found corrupt metadata and refused to trust it. On XFS and ext4 it…
- The bucket you are attempting to access must be addressed using the specified NewThis is S3's PermanentRedirect. The bucket exists, but in a different region from the endpoint the client sent the…
Other categories
- AI 35Rate limits, context windows, GPU memory and model-serving failures.
- Ansible 18Unreachable hosts, become passwords, undefined variables and Jinja2 failures.
- API 20Auth headers, payload limits, versioning, idempotency and webhook signatures.
- Apple 20Command line tools, dyld, Homebrew permissions, notarisation and Keychain.
- Auth 20OIDC, SAML, Auth0, Okta, Keycloak, passkeys and MFA failures.
- BigData 17Spark, Kafka, Airflow, Snowflake, Flink and Databricks failures.
- C# 18NuGet restore, null references, EF Core migrations, async deadlocks and Blazor…
- C++ 20Segfaults, linker errors, memory corruption and template deduction failures.
- Caching 20Cache stampedes, stale content, Varnish and CloudFront failures.
- CI/CD 18GitHub Actions, GitLab CI, Jenkins, CircleCI: permissions, runners and…
- Client 21CORS, mixed content, module resolution, memory limits and framework runtime…
- Cloud 25IAM permissions, quotas, service limits and credential failures.
- Dart 20Null safety, pub version solving and build toolchain problems.
- Database 41Connections, deadlocks, constraints, replication and memory limits.
- DNS 20NXDOMAIN, SERVFAIL, timeouts, propagation and delegation problems.
- Docker 27Daemon connectivity, disk space, image pulls, ports and architecture mismatches.
- Elixir 18GenServer timeouts, supervision failures and Mix compilation problems.
- Email 20Delivery failures, relay denial, authentication, SPF, DKIM and DMARC.
- Frontend 23Hydration mismatches, bundler resolution, layout shift and font loading.
- Git 20Merge conflicts, rejected pushes, detached HEAD, LFS and repository corruption.
- Go 19Nil map assignment, concurrent map access, context cancellation and deadlocks.
- GraphQL 19Validation, depth limits, N+1 queries and fragment problems.
- gRPC 17Status codes, deadlines, message limits, TLS and HTTP/2 transport failures.
- HTTP 494xx client errors, 5xx server errors, redirects, headers and protocol problems.
- ICMP 23Destination unreachable, time exceeded, fragmentation needed and redirects.
- Ingress 20404 default backend, missing TLS secrets, IngressClass and path matching.
- Java 19Class loading, dependency resolution, connection pools and JVM version…
- JavaScript 42npm resolution, async pitfalls, hydration, memory limits and runtime type…
- Kubernetes 34CrashLoopBackOff, ImagePullBackOff, OOMKilled, RBAC, scheduling and storage.
- Logging 18Log4j, Logback, Fluentd, Logstash and CloudWatch ingestion problems.
- MessageQueue 20Kafka, RabbitMQ, SQS, NATS and Celery: lag, rebalancing and poison messages.
- Mobile 20Gradle, CocoaPods, Xcode signing, Metro bundler and toolchain mismatches.
- Monitoring 18Prometheus scrapes, Grafana data sources, OpenTelemetry exporters and agent…
- Network 35Refused connections, timeouts, resets, MTU problems and port exhaustion.
- Performance 19GC pauses, thread pool starvation and event loop blocking.
- PHP 20Memory limits, execution timeouts, autoloading, Composer and PDO connections.
- Proxy 20nginx, Envoy, HAProxy, Traefik, Caddy and Cloudflare upstream failures.
- Python 35Imports, virtual environments, encoding, concurrency and dependency conflicts.
- Regex 17Catastrophic backtracking, back references, escaping and engine differences.
- Ruby 20Bundler, migrations, native extensions, encoding and asset compilation.
- Rust 19Borrow checker, ownership moves, trait bounds and lifetime mismatches.
- Scala 17Dependency resolution, binary compatibility and type inference failures.
- Security 25JWT validation, CSRF, OAuth grants, SELinux, SSH host keys and CSP.
- Serverless 20Lambda timeouts, package size limits, VPC networking and cold starts.
- Shell 19Command not found, permissions, quoting, expansion and Makefile syntax.
- Svelte 20Store subscriptions, load functions and server/client boundaries.
- System 26Disk space, systemd units, file descriptors, OOM killer and scheduled jobs.
- Terraform 18State locks, provider auth, drift, dependency cycles and plan-time unknowns.
- Testing 18Jest, pytest, JUnit, Cypress and Playwright: fixtures, snapshots and timeouts.
- TLS 24Untrusted authorities, expiry, hostname mismatch, chains and cipher negotiation.
- TypeScript 19Assignability, missing declarations, strict null checks and generic constraints.
- Virtualization 20VirtualBox, VMware, Hyper-V, WSL, KVM and hypervisor conflicts.
- Web3 17Gas estimation, nonce management and reverted transactions.
- WebAssembly 17Compile errors, memory bounds and host binding mismatches.
- WebServer 20nginx, Apache, IIS and Caddy: binding, permissions, rewrites and TLS.
- Windows 20Installer failures, missing runtimes, update errors and permission problems.