Midjourney 100K-image history crash fixed; archive your files anyway

Midjourney's Oct 2 changelog fixes a crash opening images in 100K+ histories. Keep your own copy: download outputs and log prompts, settings and cost.

4 min readSume
All posts

Midjourney's Alpha Changelog dated Oct 2, 2026 says it fixed a crash when opening images deep in histories of 100K or more images. That fix removes the crash; it does not give you a backup. For any large image archive, keep your own copy of the files and a record of the prompt and settings behind each one. The same applies to images you generate through Sume, whose results arrive as Sume-hosted URLs on media.sume.com.

What the changelog says

Related items from the same Oct 2 post (read 2026-10-05):

  • Crash opening images deep in histories of 100K+ images: fixed.
  • A previewed style keeps the settings in the prompt bar.
  • Edits preserve the aspect ratio of the base image.
  • Failed image loads retry, and old browsers get an unsupported-browser notice.
  • Collaborative sharing and generation tools and persistent edit history are announced as upcoming.

What to archive

An image is useful later only if you can say how it was made. Keep these next to every file.

Archive record per image, a suggested schema
FieldWhy
File (original resolution)The asset itself
Prompt textReproduction
Model id and settingsResolution, aspect ratio, quality
Reference image URLs or hashesEdit lineage
Date and job id (Sume)Lookup and support
Cost (Sume usage.cost)Budget by project

Archiving Sume results

Sume returns data[].url as a Sume-hosted URL on media.sume.com, and usage.cost as the billed amount. The docs we checked do not state how long those URLs stay available, so do not rely on them as storage. Download on arrival.

The script below fetches every image in a 200 response and writes a JSON line with the model, cost and file name. Replace the request body with your own.

import asyncio, json, os, httpx

async def main():
    headers = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
    body = {"model": "openai/gpt-image-2.5", "prompt": "a lighthouse at dusk"}
    async with httpx.AsyncClient(timeout=90) as c:
        r = await c.post("https://api.sume.com/v1/images", headers=headers, json=body)
        r.raise_for_status()
        j = r.json()
        if r.status_code != 200:
            print("job envelope"); return
        for i, d in enumerate(j["data"]):
            data = (await c.get(d["url"])).content
            name = f"{j['created']}-{i}.{d['media_type'].split('/')[1]}"
            open(name, "wb").write(data)
            print(json.dumps({"file": name, "model": j["model"], "cost": j["usage"]["cost"]}))

asyncio.run(main())

Midjourney side

The pages we read describe no export tool, so check Midjourney's own help pages before you plan a bulk download of a 100K-image history. Do it in slices. A related Sume post covers what to do when a team needs to share image jobs.

A short checklist

Do these once, then schedule them.

  • Pick a storage place you control and a folder scheme by date or project.
  • Save the prompt text beside each image.
  • Store the Sume usage.cost in the same record, so you can total the spend per project later.
  • Test a restore: open three old files from the archive.
  • Do not use the returned URLs as permanent links.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume