Skip to content

Firebase Storage errorFirebase Storage: “storage/object-not-found”

storage/object-not-found is the Firebase Storage error for a path that has no file in the bucket. The read passed the rules and found nothing there. The path, bucket or project is wrong, or the file was never uploaded or was deleted.

Short answer

Log the full path you pass to ref(), then find that file in the Firebase console under Storage, matching case and extension. Check that the app uses the bucket and project you expect, and that you save the path only after the upload finishes. When a file is optional, such as an avatar, catch the error and show a placeholder.

Rather not fix it yourself? App Fix Ticket starts with a fixed-price diagnosis, then a fixed price for the fix before any fix work.

Why the file isn’t there, and the fix

  1. 01

    The path doesn’t match the file

    “No object exists at the specified reference.” Firebase, Handle errors (storage/object-not-found)

    Paths must match exactly, including case, folders and the file extension. avatars/abc.jpg and avatars/ABC.jpeg are different files.

  2. 02

    The app reads from another bucket or project

    A web config copied from another project, a second bucket, or the emulator in one place and production in another all look like missing files. Compare storageBucket in the config with the bucket you see in the console, including the domain: newer buckets end in .firebasestorage.app, older ones in .appspot.com.

  3. 03

    The path was saved before the upload finished

    If you write the path to Firestore when the upload starts, a failed or cancelled upload leaves a path with no file. Save it after the upload resolves, and read the download URL then.

  4. 04

    Optional files need a fallback

    Not every user has an avatar or attachment. Catch this one error and show a default, and let other errors surface. In Flutter the same error shows as firebase_storage/object-not-found.

    import { FirebaseError } from 'firebase/app';
    import { getStorage, ref, getDownloadURL } from 'firebase/storage';
    
    try {
      const url = await getDownloadURL(ref(getStorage(), `avatars/${uid}.jpg`));
      showImage(url);
    } catch (e) {
      if ((e as FirebaseError).code === 'storage/object-not-found') showPlaceholder();
      else throw e;
    }
  5. 05

    A different error means a different fix

    “No bucket is configured for Cloud Storage” Firebase, Handle errors (storage/bucket-not-found)

    storage/unauthorized means rules blocked the read, so the file may exist. storage/bucket-not-found means the bucket in the config doesn’t exist.

Checked against the vendor’s docs on : Firebase docs: Handle errors for Cloud Storage on Web; Firebase docs: Download files with Cloud Storage on Web.

Rather hand it over?

Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.

“Very responsive, attentive to fixing bugs, and completed the project as needed! Thank you!”
A buyer in the United States, July 2022. Shopify on Fiverr
All 127 Fiverr reviews

Related: Firebase Storage unauthorized · Firebase “Missing or insufficient permissions” · Firebase Hosting “Page Not Found” · Firebase storage/retry-limit-exceeded

Questions

More on this error

Can security rules cause object-not-found?

No. A read that rules block fails with storage/unauthorized. object-not-found means the read passed the rules and found nothing at that path. Under strict rules, a missing file can show as unauthorized instead.

Should I store the path or the download URL?

Either works. Storing the path lets you build the reference again later. Save either one only after the upload finishes, so it always points at a real file.

Can you fix it for me?

If one bug is the whole problem, the App Fix Ticket covers it: a written diagnosis first, then the fix. If the app has more going on, the Launch Check is a written check of the whole app. Each issue found is rated critical, high, medium or low, with where it is and how it was confirmed. No issues worth fixing, no charge. If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way. This applies to the first 10 Launch Checks bought after October 30, 2026.

A different error?

Describe it and get a written quote

Send the error and what you were doing. You get a written scope, a fixed price and a timeline; Simon replies by email, usually within one business day.