Error Codes
Every failure freemkv reports carries a stable code of the form E<number>, shown
alongside a plain-language message — for example Error: E6009 No audio or video streams were found in this title. The disc may be damaged or an unsupported format.
This page lists every code, its message, and what to do about it. The codes are
stable across releases, so you can search this page (or a bug report) by code.
For a symptom-first walkthrough of the most common problems, start with
Troubleshooting. For any failure or hang, capture a debug log
first — re-run with --log-level 3 (writes ./log.txt).
Device (1xxx)
Section titled “Device (1xxx)”Problems reaching, opening, or talking to the optical drive.
| Code | Level | Message | Cause & next steps |
|---|---|---|---|
| E1000 | Error | Drive not found at {detail}. Check the device path, or run without a path to auto-detect a drive. | Cause: freemkv could not find a drive at the given device path. Next steps: 1. Confirm a drive is connected and the disc is inserted. 2. On Linux, target the SCSI generic node: use /dev/sg*, not /dev/sr*. 3. List drives with freemkv info disc://. |
| E1001 | Error | Permission denied for {detail}. Add yourself to the disk group, or run the command with elevated privileges. | Cause: The OS denied access to the drive device node. Next steps: 1. Add your user to the optical/disk group (e.g. sudo usermod -aG cdrom $USER) and re-login. 2. Or run freemkv with elevated privileges. 3. Confirm the device path with freemkv info disc://. |
| E1002 | Error | The drive is not ready ({detail}). Insert a disc, wait for it to spin up, and try again. | Cause: The drive reported it is not ready — no disc, still spinning up, or still loading. Next steps: 1. Wait for the drive to finish loading the disc, then retry. 2. Re-seat the disc if it was just inserted. |
| E1003 | Error | Drive reset failed: {detail} | Cause: A drive reset was attempted and failed. Next steps: 1. Reconnect the drive (unplug/replug USB or power-cycle) and try again. 2. Try a different USB port or cable if the drive is external. |
| E1004 | Error | Could not reach the drive’s command interface. Reconnect the drive and try again. | Cause: The platform SCSI command interface for the drive could not be obtained from the OS. Next steps: 1. Reconnect the drive and try again. 2. Confirm no other program holds the device. |
| E1005 | Error | The drive is in use by another program. Close anything else using the disc and try again. | Cause: Another program holds the drive open, so freemkv cannot start its session. Next steps: 1. Close any other disc software, file manager preview, or media player using the disc. 2. On Linux, check for an automounter holding the device, then retry. |
| E1006 | Error | Could not open the drive on this system. Reconnect the drive and try again. | Cause: The drive could not be opened on this system (platform open failed). Next steps: 1. Reconnect the drive and try again. 2. Confirm the device path and that your user can access it. |
Profile / drive support (2xxx)
Section titled “Profile / drive support (2xxx)”The drive or platform isn’t recognized or supported yet.
| Code | Level | Message | Cause & next steps |
|---|---|---|---|
| E2000 | Error | This drive isn’t supported yet: {detail}. Run ‘freemkv drive-info —share’ to help add it. | Cause: The drive’s vendor/model/firmware did not match any supported profile. Next steps: 1. Run freemkv info disc:// --share to help add support for the drive. 2. Check the drive-support pages for known-working drives. |
| E2002 | Error | Could not read the drive’s capabilities. Reconnect the drive and try again. | Cause: The drive’s capability data (mode pages) could not be read or parsed. Next steps: 1. Reconnect the drive and try again. 2. If it persists, capture a debug log and open an issue. |
| E2003 | Error | This operating system isn’t supported for direct drive access. | Cause: Direct drive access is not implemented for this operating system. Next steps: 1. Use a supported platform (Windows, macOS, or Linux). 2. Check the platform pages for current support. |
| E2004 | Error | This drive type isn’t supported yet. | Cause: The drive class is recognized but not yet implemented. Next steps: 1. Run freemkv info disc:// --share to help prioritize support. 2. Use a supported drive in the meantime. |
Drive unlock (3xxx)
Section titled “Drive unlock (3xxx)”Firmware-unlock steps for protected-disc reading.
| Code | Level | Message | Cause & next steps |
|---|---|---|---|
| E3000 | Error | Drive unlock failed. | Cause: The drive firmware unlock step failed. Next steps: 1. Confirm the drive supports firmware unlocking — not all drives can be unlocked. 2. See the unlocked-drives page for supported models. |
| E3001 | Error | The drive’s firmware did not match the expected version. This drive may not be supported for unlocking. | Cause: The drive’s firmware version did not match the version expected by the unlock routine. Next steps: 1. This drive may not be supported for unlocking, or its firmware differs. 2. Check the unlocked-drives page for compatible firmware. |
SCSI (4xxx)
Section titled “SCSI (4xxx)”Low-level command failures between freemkv and the drive.
| Code | Level | Message | Cause & next steps |
|---|---|---|---|
| E4000 | Error | The drive reported a command error ({detail}). The disc may be damaged, or the drive may need reconnecting. | Cause: A SCSI command to the drive returned an error status. Next steps: 1. The disc may be dirty or scratched — clean it and retry. 2. Reconnect the drive if the failure repeats on multiple discs. 3. Capture a debug log (--log-level 3) for the raw status/sense. |
| E4001 | Error | Internal error while talking to the drive. Please report this. | Cause: An internal error occurred constructing a command for the drive. Next steps: 1. This is a bug — please report it with a debug log. |
I/O (5xxx)
Section titled “I/O (5xxx)”System-level input/output errors, typically writing the output.
| Code | Level | Message | Cause & next steps |
|---|---|---|---|
| E5000 | Error | A system I/O error occurred ({detail}). Check the destination has space and you have write access. | Cause: A system-level I/O error occurred, typically writing the output. Next steps: 1. Confirm the destination has free space. 2. Confirm you have write access to the destination path. 3. Check the underlying disk/network share is healthy. |
Disc format (6xxx)
Section titled “Disc format (6xxx)”Reading or parsing the disc’s filesystem, playlists, and titles.
| Code | Level | Message | Cause & next steps |
|---|---|---|---|
| E6000 | Error | Could not read the disc at sector {detail}. The disc may be dirty or scratched — clean it and try again. | Cause: A sector could not be read off the disc. Next steps: 1. Clean the disc and try again. 2. Use multipass mode (CLI --multipass, or autorip max_retries ≥ 1) to retry bad ranges. |
| E6001 | Error | Could not read the disc’s playlist data. The disc may be damaged or an unsupported format. | Cause: The disc’s playlist (MPLS) data could not be parsed. Next steps: 1. The disc may be damaged or an unsupported variant — clean it and retry. 2. Capture a debug log and open an issue if it persists on a clean disc. |
| E6002 | Error | Could not read the disc’s clip data. The disc may be damaged or an unsupported format. | Cause: The disc’s clip (CLPI) data could not be parsed. Next steps: 1. The disc may be damaged or an unsupported variant — clean it and retry. 2. Capture a debug log and open an issue if it persists on a clean disc. |
| E6003 | Error | File not found on the disc: {detail} | Cause: An expected file was not present on the disc’s filesystem. Next steps: 1. The disc may be damaged or an unsupported layout. 2. Confirm the disc is a supported DVD / Blu-ray / 4K UHD. |
| E6005 | Error | Title {detail} doesn’t exist on this disc. | Cause: A title index was requested that does not exist on this disc. Next steps: 1. List available titles with freemkv info disc://. 2. Pick a title number within range. |
| E6007 | Error | Could not read the disc’s title structure. The disc may be damaged or an unsupported format. | Cause: The disc’s title structure (IFO) could not be parsed. Next steps: 1. The disc may be damaged or an unsupported variant — clean it and retry. 2. Capture a debug log and open an issue if it persists on a clean disc. |
| E6008 | Error | Invalid MKV file. | Cause: The title produced no muxable frames — the mux pump ended without any video track’s codec setup resolving, or the muxer reached finish() with zero frames written. The canonical case is an empty nav/menu stub title, which an all-titles rip skips and carries on. Next steps: 1. Usually harmless on an all-titles rip — the stub is skipped. 2. If it hits the title you actually wanted, confirm the disc decrypts (keys available) and the title has readable data. Note: a malformed or truncated mkv:// source file is E9053, not this code. |
| E6009 | Error | No audio or video streams were found in this title. The disc may be damaged or an unsupported format. | Cause: No playable streams were found in the selected title. Next steps: 1. Pick a different title with freemkv info disc://. 2. If the disc is encrypted, confirm decryption keys are available. |
| E6010 | Error | Operation stopped. | Cause: The operation was stopped (Ctrl-C, or autorip stop). Next steps: 1. Re-run the same command to resume from the preserved mapfile/staging. |
| E6011 | Error | The recovery map file is invalid or corrupted. | Cause: The recovery map file (ddrescue mapfile) is invalid or corrupted. Next steps: 1. Delete the mapfile to start a fresh sweep, or restore a known-good copy. 2. Capture a debug log if it was produced by freemkv itself. |
| E6012 | Error | Internal error reading the disc. Please report this. | Cause: An internal error occurred reading the disc (a sector-read caller passed a buffer smaller than one 2048-byte sector). Next steps: 1. This is a bug — please report it with a debug log. |
| E6013 | Error | (no localized message yet — shown as the bare code) | Cause: The source was readable but its bytes are structurally not a UDF filesystem (no anchor volume descriptor pointer, no partition descriptor, or no file set descriptor). Unlike E6000 this is a stable property of the media, not a transient read fault, so retrying will not help. Next steps: 1. Confirm the image or disc really is a DVD / Blu-ray / 4K UHD and not, say, a data disc or a truncated download. 2. If it is a real disc image, capture a debug log and open an issue. |
| E6014 | Error | (no localized message yet — shown as the bare code, followed by the PID) | Cause: A stream selection named a PID that does not exist in the title’s declared streams — normally a stale scan being replayed against a different title. Next steps: 1. Re-run freemkv info disc:// to get the title’s current stream list, then re-select. 2. If freemkv itself produced the selection, capture a debug log and open an issue. |
AACS / CSS decryption (7xxx)
Section titled “AACS / CSS decryption (7xxx)”Decryption of Blu-ray / 4K UHD (AACS) and DVD (CSS) discs.
| Code | Level | Message | Cause & next steps |
|---|---|---|---|
| E7000 | Error | This disc needs AACS decryption keys (Blu-ray/UHD), but none were found. Download a key database with: freemkv update-keys —url | Cause: The disc is AACS-encrypted (Blu-ray / 4K UHD) and no key source supplied its keys. Next steps: 1. Provide keys from a key source — a local keydb.cfg or an online key service. 2. Update a local key database: freemkv update-keys --url <keydb-url>. 3. See the Decryption Keys page. DVDs are never affected. |
| E7001 | Error | The disc’s security certificate is too short or invalid. | Cause: The disc’s AACS security certificate was too short or malformed. Next steps: 1. Clean the disc and retry. 2. The disc may be damaged or an unsupported variant. |
| E7002 | Error | The drive would not start a secure session for this disc — it may be in use by another program. Close anything else using the disc and try again. | Cause: The drive would not allocate a secure session for this disc. Next steps: 1. Close any other program using the disc and retry. 2. Re-seat the disc. |
| E7003 | Error | The drive rejected this disc’s security certificate. | Cause: The drive rejected this disc’s AACS security certificate. Next steps: 1. Clean the disc and retry. 2. The disc may be damaged or unsupported on this drive. |
| E7004 | Error | Could not read the disc’s security certificate. The disc may be dirty or damaged. | Cause: The disc’s AACS security certificate could not be read. Next steps: 1. Clean the disc and retry — read errors here usually mean dirt or damage. |
| E7005 | Error | The disc’s security certificate could not be verified. The disc may be damaged or unsupported. | Cause: The disc’s AACS security certificate failed verification. Next steps: 1. The disc may be damaged or an unsupported variant. 2. Clean the disc and retry. |
| E7006 | Error | Could not read a decryption key from the disc. The disc may be dirty or damaged. | Cause: A decryption key could not be read from the disc. Next steps: 1. Clean the disc and retry — this is usually dirt or damage. |
| E7007 | Error | The drive rejected a decryption key for this disc. | Cause: The drive rejected a decryption key for this disc. Next steps: 1. Update your key source so it carries current keys for this disc. 2. Clean the disc and retry. |
| E7008 | Error | A decryption key for this disc could not be verified. | Cause: A decryption key for this disc failed verification. Next steps: 1. Update your key source: freemkv update-keys --url <keydb-url>. 2. The disc may be damaged or the key stale. |
| E7009 | Error | Could not read the disc’s identifier. The disc may be dirty or damaged. | Cause: The disc’s identifier (Volume ID) could not be read. Next steps: 1. Clean the disc and retry — this is usually dirt or damage. |
| E7010 | Error | The disc’s identifier could not be verified. The disc may be damaged or unsupported. | Cause: The disc’s identifier failed verification. Next steps: 1. The disc may be damaged or an unsupported variant. 2. Clean the disc and retry. |
| E7011 | Error | Could not prepare this disc’s decryption key. | Cause: This disc’s decryption key could not be prepared from the available inputs. Next steps: 1. Update your key source and retry. 2. Confirm the disc is supported by your key source. |
| E7013 | Error | Decryption failed — the recovered key did not unlock this disc’s data. The key may be wrong or outdated; refresh it with: freemkv update-keys —url | Cause: Decryption of the disc’s data failed. Next steps: 1. Update your key source so it has correct keys for this disc. 2. Confirm the disc is supported by your key source, then retry. |
| E7014 | Error | CSS authentication failed: the drive could not establish the key exchange needed to decrypt this DVD. Try cleaning the disc and reinserting it. If the problem persists, your drive may not fully support CSS decryption. | Cause: The CSS key exchange needed to decrypt a DVD could not be established with the drive. Next steps: 1. Clean the disc and reinsert it. 2. If it persists, the drive may not fully support CSS decryption — try another drive. |
| E7015 | Error | The drive rejected the AACS host certificate, and this drive can’t be unlocked another way. | Cause: The drive rejected the AACS host certificate and cannot be unlocked another way. Next steps: 1. Update a local key database first (freemkv update-keys --url <keydb-url>); a stale one is the most common cause. 2. Use a firmware-unlockable drive — on a drive that can’t be unlocked, this handshake is the only path. 3. Make sure nothing else is using the disc. |
| E7016 | Error | This drive can’t read the disc in the mode needed to decrypt it, and the secure session was refused. No way to decrypt this disc remains on this drive. | Cause: The drive can’t enter the raw-read mode needed to decrypt, and the secure session was refused. Next steps: 1. Use a firmware-unlockable drive that supports the read mode this disc needs. 2. See the drive-support pages for compatible drives. |
| E7017 | Error | Could not read this disc’s identifier, so it can’t be decrypted. The disc may be dirty or damaged, or the drive may not support it. | Cause: The disc’s identifier could not be read, so it can’t be decrypted. Next steps: 1. Clean the disc and retry — this is usually dirt or damage. 2. The drive may not support the path needed to read the identifier. |
| E7018 | Error | No key source has a decryption key for this disc. | Cause: A key source was consulted but none had a decryption key for this disc. Next steps: 1. Update a key source: freemkv update-keys --url <keydb-url>, or configure an online key service. 2. Confirm the disc is supported by your key source. |
| E7019 | Error | No key source has this disc’s key. | Cause: No key source carried this disc’s key. Next steps: 1. Update a key source: freemkv update-keys --url <keydb-url>. 2. Confirm the disc is supported by your key source. |
| E7020 | Error | This drive isn’t recognized, so the steps needed to read this disc’s identifier aren’t available. Run ‘freemkv drive-info —share’ to help add it. | Cause: The drive identity matched no profile, so the steps to read this disc’s identifier aren’t available. Next steps: 1. Run freemkv info disc:// --share to help add support for the drive. 2. Use a supported drive in the meantime. |
| E7021 | Error | This drive doesn’t provide a way to read this disc’s identifier. | Cause: The drive provides no path to read this disc’s identifier. Next steps: 1. Use a drive whose profile carries an identifier-retrieval path. 2. See the drive-support pages. |
| E7022 | Error | No key source has a decryption key for this disc (id: {hash}). | Cause: A key source was consulted but none had this disc’s VUK (its decryption key). Next steps: 1. Update keys: freemkv update-keys --url <keydb-url>. 2. Confirm the disc is supported by your key source. 3. The {hash} in the message identifies the disc for lookup. |
| E7023 | Error | This disc is copy-protected and no key could be recovered for this title, so it can’t be decrypted (the output would be unreadable). | Cause: This copy-protected disc yielded no usable title key, so the output would be unreadable. Next steps: 1. Clean the disc and retry. 2. Confirm the disc is a supported, readable copy. |
| E7024 | Error | No host certificate is available from any key source for the drive’s secure handshake. | Cause: No key source supplied a host certificate for the drive’s secure handshake. Next steps: 1. Provide a key source that includes a host certificate. 2. See the Decryption Keys page for key-source setup. |
| E7025 | Error | This disc uses AACS bus encryption, but no bus key could be obtained from the drive’s secure handshake, so its data can’t be decrypted (the output would be unreadable). | Cause: The AACS bus key needed to complete the drive’s secure handshake was not available. Next steps: 1. Update a local key database (freemkv update-keys --url <keydb-url>); a stale or incomplete one is the most common cause. 2. Confirm your key source carries the inputs this disc needs. 3. Re-seat the disc and retry. |
| E7026 | Error | This disc uses AACS 2.1 forensic watermarking (FMTS) and no variant key is available for it, so the movie can’t be rebuilt without gaps. Update your key database, or set BYPASS_FMTS_KEY to accept a forensically-holed output. | Cause: An AACS 2.1 forensic-variant (FMTS) disc needs per-variant forensic keys in addition to the base Unit Key. No key source supplied the complete forensic set. Next steps: 1. Update your key source — freemkv update-keys --url <keydb-url> — or configure an online key service that carries FMTS variant keys. 2. Retry once the key source is reachable. 3. In autorip, enable Capture Discs Without Keys to save a raw ISO now and decode once keys arrive. Note: the message’s BYPASS_FMTS_KEY suggestion is not implemented in this release — setting it has no effect. |
| E7027 | Error | This DVD’s copy protection could not be unlocked, so no title on it can be read. The disc may be damaged, or use a variant this version does not handle. | Cause: The disc is CSS-encrypted and keyless title-key recovery recovered no title key for the disc at all. This is a whole-disc condition — every title would fail identically — so a multi-title rip stops rather than iterating. (The per-title counterpart, where one title’s key could not be recovered but siblings still can, is E7023.) Next steps: 1. Clean the disc and retry — a scratched or dirty disc starves the recovery of the clean readable data it needs. 2. Try another drive. 3. If the disc is pristine and still fails, capture a debug log and open an issue with the disc title. |
| E7028 | Error | The online key service could not be reached, so it never said whether this disc has a key. This is usually temporary — wait a few minutes and try again. Don’t go looking for a missing key yet; the service was down, not the disc. | Cause: New in 1.6.0. The online key service was unreachable — DNS failure, timeout, transport error, a 5xx, or an unparseable reply. Before 1.6.0 this was indistinguishable from a successful lookup that found nothing, so an outage read as “this disc has no key”. Next steps: 1. Wait and retry — this is normally transient. 2. Check the service URL and your network. 3. This is not E7018/E7022: the service never answered, so nothing is known about the disc’s key. |
| E7029 | Error | The online key service rejected the access token, so it would not answer. Fix the key-service token in Settings (or —key-auth on the command line) and try again. This does not mean the disc has no key. | Cause: New in 1.6.0. The key service answered 401 or 403 — the access token is missing, wrong, or expired. Not transient; retrying unchanged will fail identically. Next steps: 1. Correct the token (--key-auth, or Settings in the desktop app). 2. Confirm the token is for the service you are pointing at. 3. See Decryption Keys for key-source setup. |
| E7030 | Error | The online key service is rate-limiting requests and would not answer. Wait a few minutes and try again, or rip fewer discs at once. This does not mean the disc has no key. | Cause: New in 1.6.0. The key service answered 429. The request was refused before any lookup happened. Next steps: 1. Wait a few minutes and retry. 2. Reduce concurrency — rip fewer discs at once, or stagger an autorip fleet. 3. A local key database (freemkv update-keys --url <keydb-url>) is not rate limited. |
Key sources (8xxx)
Section titled “Key sources (8xxx)”Reaching a key source — downloading, writing, loading, or parsing a local key
database (keydb.cfg) or an online key service.
| Code | Level | Message | Cause & next steps |
|---|---|---|---|
| E8000 | Error | Cannot connect to the key database server: {detail} | Cause: freemkv could not connect to the key database server. Next steps: 1. Check your network connection and the key database URL. 2. Retry, or point at a reachable key database with freemkv update-keys --url <keydb-url>. |
| E8001 | Error | Key database download failed (HTTP {detail}). Try again, or run: freemkv update-keys —url | Cause: The key database download returned an HTTP error status. Next steps: 1. Try again — the server may be temporarily unavailable. 2. Confirm the URL: freemkv update-keys --url <keydb-url>. |
| E8002 | Error | The key database is empty or invalid. Re-download it with: freemkv update-keys —url | Cause: The downloaded key database was empty or invalid. Next steps: 1. Re-download it: freemkv update-keys --url <keydb-url>. 2. Confirm the URL points at a valid key database. |
| E8003 | Error | Cannot write the key database: {detail} | Cause: The key database could not be written to disk. Next steps: 1. Confirm the config directory exists and is writable. 2. Check free space and permissions on the destination path. |
| E8004 | Error | The key database could not be read. Re-download it with: freemkv update-keys —url | Cause: The key database file could not be read or parsed. Next steps: 1. Re-download it: freemkv update-keys --url <keydb-url>. 2. Confirm the file isn’t truncated or corrupted. |
| E8005 | Error | Cannot load the key database: {detail} | Cause: The key database could not be loaded from disk. Next steps: 1. Confirm the keydb.cfg path is correct and readable. 2. Re-download it: freemkv update-keys --url <keydb-url>. |
| E8006 | Error | The key database URL uses an address type that isn’t supported ({detail}). | Cause: The key database URL uses an address type freemkv’s downloader does not support. Next steps: 1. Use a supported URL scheme for the key database. 2. Download the key database manually and point --keydb PATH at it. |
| E8007 | Error | The key database download was redirected too many times. Check the URL and try again. | Cause: The key database download was redirected too many times. Next steps: 1. Check the URL and try again. 2. Use a direct URL to the key database file. |
Stream / mux (9xxx)
Section titled “Stream / mux (9xxx)”Building the output stream and muxing to the destination.
| Code | Level | Message | Cause & next steps |
|---|---|---|---|
| E9000 | Error | Stream is read-only. | Cause: A read was attempted on a write-only stream (internal usage). Next steps: 1. This is a bug — please report it with a debug log. |
| E9001 | Error | Stream is write-only. | Cause: A write was attempted on a read-only stream (internal usage). Next steps: 1. This is a bug — please report it with a debug log. |
| E9002 | Error | Invalid stream URL: {detail} | Cause: A source/destination URL could not be parsed. Next steps: 1. Check the URL syntax (scheme, path, and any host:port). 2. See the CLI reference for valid source/destination forms. |
| E9003 | Error | URL missing path: {detail} | Cause: A URL is missing its path component. Next steps: 1. Add the path to the URL (e.g. iso:///path/to/out.iso). 2. See the CLI reference for valid URL forms. |
| E9004 | Error | URL missing port: {detail} | Cause: A URL is missing its port component. Next steps: 1. Add the port to the URL (e.g. host:port). 2. See the CLI reference for valid URL forms. |
| E9005 | Error | Internal error while building the output. Please report this. | Cause: An internal error occurred while building the output. Next steps: 1. This is a bug — please report it with a debug log. |
| E9006 | Error | The input data is corrupted or not in the expected format. | Cause: The input data was corrupted or not in the expected format. Next steps: 1. Confirm the source disc/file is readable and a supported format. 2. If reading a damaged disc, use multipass recovery. |
| E9007 | Error | ISO image too large: {detail} | Cause: The ISO image is larger than this build can address. Next steps: 1. Use a destination/build that supports the required size. 2. Capture a debug log and open an issue with the disc capacity. |
| E9008 | Error | No information is available for this input. | Cause: No information is available for the given input. Next steps: 1. Confirm the source is a supported disc or image. 2. Try freemkv info disc:// against a disc source instead. |
| E9009 | Error | Disc input can’t be opened this way — this is an internal usage error. | Cause: A disc:// URL was opened through the wrong API entry point (internal usage). Next steps: 1. This is an internal usage error — please report it with a debug log. |
| E9010 | Error | The video stream’s setup data could not be read. The source may be damaged or unsupported. | Cause: The video stream’s setup data (parameter sets) could not be read. Next steps: 1. The source may be damaged or an unsupported variant — clean the disc and retry. 2. Capture a debug log and open an issue if it persists. |
| E9011 | Error | Internal error while building the output. Please report this. | Cause: An internal error occurred while building the output. Next steps: 1. This is a bug — please report it with a debug log. |
| E9012 | Error | This output format isn’t supported yet. | Cause: The requested output format isn’t implemented yet. Next steps: 1. Choose a supported output format (e.g. mkv:// or iso://). 2. See the CLI reference for supported destinations. |
| E9013 | Error | Internal error: a processing step stopped unexpectedly. Please report this. | Cause: An internal processing step stopped unexpectedly. Next steps: 1. This is a bug — please report it with a debug log. |
| E9014 | Error | Timed out while finishing the output. Please try again. | Cause: Finishing the output timed out. Next steps: 1. Try again. 2. If the destination is a slow network share, retry to a local path first. |
| E9015 | Error | Internal error: a processing step stopped unexpectedly. Please report this. | Cause: An internal processing step stopped unexpectedly. Next steps: 1. This is a bug — please report it with a debug log. |
| E9016 | Error | Internal error: a processing step stopped unexpectedly. Please report this. | Cause: An internal processing step stopped unexpectedly. Next steps: 1. This is a bug — please report it with a debug log. |
| E9017 | Error | Internal error while building the output. Please report this. | Cause: An internal error occurred while building the output. Next steps: 1. This is a bug — please report it with a debug log. |
| E9018 | Error | Internal error: a processing step stopped unexpectedly. Please report this. | Cause: An internal processing step stopped unexpectedly. Next steps: 1. This is a bug — please report it with a debug log. |
| E9019 | Error | --raw only applies to an iso:// output (it writes a raw, still-encrypted disc image). This destination is not an iso:// target. | Cause: --raw was combined with a non-iso:// destination (e.g. dir:// or mkv://). Raw means “don’t decrypt,” which only makes sense writing a disc image. Next steps: 1. Rip to iso:// for a raw image, or 2. drop --raw to decrypt + mux/extract. |
| E9020 | Error | The drive reported a disc size this version can’t handle. | Cause: The drive reported a disc size this version can’t handle. Next steps: 1. Update freemkv to the latest version. 2. Capture a debug log and open an issue with the reported capacity. |
| E9021 | Error | The output stream is malformed. Please report this. | Cause: The output transport stream was malformed (a muxer invariant broke). Next steps: 1. This is a bug — please report it with a debug log. |
| E9022 | Error | The output destination resolved only to blocked addresses and was refused. | Cause: The output destination resolved only to blocked addresses and was refused. Next steps: 1. Use an output host that resolves to a routable, non-private address. 2. This guard blocks loopback/private/link-local targets by design. |
| E9023 | Error | No video or audio was produced — the output would be an empty file. The input may be undecryptable or have no readable data. | Cause: No video or audio was produced — the output would be an empty file. Next steps: 1. Confirm the input is decryptable (keys available for an encrypted disc). 2. Confirm the selected title has readable data; try multipass recovery on a damaged disc. |
| E9024 | Error | --multipass only applies to an iso:// output (multi-pass recovery writes a disc image with a mapfile). This destination is not an iso:// target. | Cause: --multipass was combined with a non-iso:// destination. Multi-pass recovery is a disc-imaging step, not a mux/extract step. Next steps: 1. Rip to iso:// first (e.g. iso://disc.iso), then mux that ISO to mkv://. |
| E9025 | Error | dir:// extraction needs a disc filesystem source (disc:// or iso://). The given source has no file tree. | Cause: A dir:// destination was paired with a source that carries no on-disc file tree (e.g. a stream source). Next steps: 1. Use a disc:// or iso:// source to extract the decrypted file tree. 2. For a single stream, use mkv:// instead. |
| E9026 | Error | The dir:// target folder is not empty. Pass —force to extract into it anyway, or choose an empty folder. | Cause: The dir:// extraction target already contains files. Next steps: 1. Pass --force to extract into the non-empty folder anyway. 2. Or choose an empty destination folder. |
| E9027 | Error | Not enough free space on the dir:// target to extract the decrypted file tree. Free up space or choose another folder. | Cause: The dir:// target doesn’t have enough free space for the decrypted file tree. Next steps: 1. Free up space on the destination. 2. Or extract to another folder with more capacity. |
| E9028 | Error | Two files on the disc map to the same name on this filesystem, which would overwrite one. Extract to a case-sensitive filesystem, or report this disc. | Cause: Two files on the disc collide to one name on this filesystem (e.g. a case-insensitive volume). Next steps: 1. Extract to a case-sensitive filesystem. 2. Or report this disc if the collision looks unexpected. |
| E9029 | Error | Could not write the extracted file tree to the dir:// target. Check the folder still exists and you have write access. | Cause: Writing the extracted file tree to the dir:// target failed. Next steps: 1. Confirm the target folder still exists. 2. Confirm you have write access to it. |
| E9030 | Error | Internal error while building the output. Please report this. | Cause: An internal error occurred while building the output. Next steps: 1. This is a bug — please report it with a debug log. |
| E9047 | Error | The drive returned an unreadable disc-size response. Reconnect the drive and try again. | Cause: The drive returned an unreadable disc-size response (READ CAPACITY transferred a short or overflowing result). Next steps: 1. Reconnect the drive and try again. 2. Re-seat the disc. |
| E9048 | Error | MP4 needs a video track it can carry (H.264 or HEVC); this title has none. Use mkv:// instead, which keeps everything. | Cause: An mp4:// destination was chosen for a title with no video track MP4 can carry. MP4 is a compatibility export and carries only MP4-mappable codecs. Next steps: 1. Use mkv:// instead — it keeps every track. 2. Check the title’s streams with freemkv info. |
| E9049 | Error | This MP4 file is malformed or truncated and could not be read. | Cause: An mp4:// source file could not be parsed — bad box structure, sample table, or offsets. Next steps: 1. Confirm the file downloaded/copied completely. 2. Re-create the MP4 from its source. |
| E9050 | Error | This title’s video is missing the configuration data an MP4 needs. Use mkv:// instead. | Cause: The video track has no codec-configuration record (avcC / hvcC), without which an MP4 sample entry cannot be written. Next steps: 1. Use mkv:// instead. 2. If the source is a disc, capture a debug log and open an issue. |
| E9051 | Error | The muxer could not work out one of the video tracks’ format before its buffer filled. Please report this disc. | Cause: The mux driver buffered past its pre-headers cap without every video track’s codec setup resolving. This is a real title, never a skippable stub. Next steps: 1. This is a bug — please report it with a debug log and the disc name. |
| E9052 | Error | This mkv:// source groups several frames into one block, but the group’s header does not match its contents, so the frame boundaries cannot be read. The file is malformed. | Cause: An mkv:// source Block declared lacing (RFC 9559 §10.3) whose header does not describe its own payload, so the frames packed into that Block cannot be separated. Next steps: 1. Confirm the file is complete and not truncated. 2. Re-mux the source with the tool that produced it. |
| E9053 | Error | This mkv:// source file is malformed or truncated and could not be read. | Cause: An mkv:// source file was rejected by the EBML/Matroska reader — a bad element ID or size, a child overrunning its parent, a truncated body, a non-UTF-8 string, or an out-of-range timestamp scale / track number. This is a failure, never a skippable title. Next steps: 1. Confirm the file copied/downloaded completely. 2. Re-create the MKV. Note: a title that simply produced no frames is E6008, not this code. |
| E9054 | Error | Part of the output is too large for the Matroska format to describe. Please report this disc. | Cause: The Matroska writer was asked to emit an element EBML cannot represent (a body at or above the 56-bit size limit, or a stale master-element size placeholder). An output-side limit, not a property of the input. Next steps: 1. This is a bug — please report it with a debug log and the disc name. |
| E9055 | Error | (no localized message yet — shown as the bare code) | Cause: New in 1.6.0. An mp4:// destination’s video track has no resolved frame dimensions, and an MP4 sample entry cannot be written without width and height. Previously an unresolved resolution came back as (0, 0) and was written as if real; the MP4 sink now refuses the track instead. Next steps: 1. Use mkv:// instead — Matroska tolerates an unresolved resolution. 2. If the source is a disc, capture a debug log and open an issue. |
| E9056 | Error | (no localized message yet — shown as the bare code) | Cause: New in 1.6.0. The bounded durable flush (the final fsync of the written output) did not complete within its deadline. Next steps: 1. Check the destination volume — a stalled network share or a failing disk is the usual cause. 2. Re-run to a local filesystem. 3. Capture a debug log and open an issue if it recurs locally. |
| E9057 | Error | (no localized message yet — shown as the bare code) | Cause: New in 1.6.0. The worker thread performing the bounded durable flush was lost before it reported a result, so the output cannot be confirmed durable. Next steps: 1. This is a bug — please report it with a debug log. 2. Treat the output file as unverified and re-run. |
| E9058 | Error | (no localized message yet — shown as the bare code) | Cause: The drive’s INQUIRY response was shorter than the fields freemkv needs to identify it. Usually a USB bridge that answers a truncated INQUIRY. Next steps: 1. Try a different enclosure or cable. 2. Capture a debug log and open an issue naming the drive and bridge. |
| E9059 | Error | (no localized message yet — shown as the bare code) | Cause: New in 1.6.1. Writing an iso:// destination from a file source, a read returned fewer bytes than the sectors requested — meaning the source is shorter than the capacity it declares. freemkv refuses rather than zero-filling the gap, because a padded image looks complete and is not. Next steps: 1. Check the source image’s size against the disc capacity it reports under freemkv info. 2. Re-copy or re-download the source; a truncated transfer is the usual cause. |
| E9060 | Error | (no localized message yet — shown as the bare code) | Cause: New in 1.6.1. Writing an iso:// destination was asked for zero sectors, so there is nothing to write. This normally means the source scan itself found no disc structure. Next steps: 1. Run freemkv info on the source and confirm it reports a real capacity and title list. |
| E9061 | Error | dir:// source: this folder holds a 3D disc (BDMV/STREAM/SSIF), which dir:// cannot read yet. Rip from the disc or an ISO instead. | Cause: New in 1.6.1. The folder contains an SSIF interleaved 3D stream, which the folder reader does not handle; it refuses rather than produce a silently wrong 2D result. Next steps: 1. Rip from the disc:// or an iso:// image instead. |
| E9062 | Error | The folder’s files cannot be laid out as a disc image — a required file is not where a disc would put it. | Cause: New in 1.6.1. Writing dir:// → iso:// needs the tree to be placeable under disc layout rules and one file cannot be positioned. Next steps: 1. Extract a fresh folder with freemkv iso://Disc.iso dir://Out/, or write the image straight from the source. |
| E9063 | Error | This folder is still encrypted. dir:// needs a decrypted backup; rip from the disc or an ISO instead. | Cause: New in 1.6.1. The folder’s content is judged encrypted — note this is decided by content, not by an AACS directory being present, so a decrypted backup with a leftover folder is still accepted. Next steps: 1. Rip from disc:// or iso://, which decrypt as they read. |
| E9064 | Error | This folder is not a disc backup. Point dir:// at the folder containing VIDEO_TS or BDMV. | Cause: New in 1.6.1. No VIDEO_TS or BDMV directory was found. Next steps: 1. Point at the parent folder that CONTAINS VIDEO_TS/BDMV, not at those folders themselves. |
| E9065 | Error | A file changed while it was being read, so the image would not match the folder. Nothing was written. | Cause: New in 1.6.1. A source file’s size or mtime moved during a dir:// → iso:// write. The image is abandoned rather than written half-consistent. Next steps: 1. Make sure nothing else is writing the folder, then retry. |
| E9066 | Error | This folder is too large to present as a single disc image. | Cause: New in 1.6.1. The tree exceeds what one disc image can address. Next steps: 1. Write to mkv:// or dir:// instead, or split the content. |
| E9067 | Error | A file name is too long to store on a disc. Shorten it and try again. | Cause: New in 1.6.1. A name exceeds what the disc filesystem can encode. Next steps: 1. Shorten the named file and retry. |
| E9068 | Error | A folder holds too many subfolders to store on a disc. | Cause: New in 1.6.1. A directory’s child count exceeds what the on-disc structure can express. Next steps: 1. Flatten or split that folder and retry. |
| E9069 | Error | Most of this title’s frames fell outside the disc’s own playback marks, so the output would be badly incomplete. | Cause: New in 1.6.1. On a multi-clip title, more frames were excluded by the playlist’s marks than were kept — never a real join, so the rip stops instead of writing a title missing most of itself. Next steps: 1. Re-run with --log-level 2 and report the plan line; this indicates the marks and the stream disagree. |
| E9070 | Error | Nothing was written — every frame was discarded. The output would have been empty. | Cause: New in 1.6.1. The sink finished with zero frames written. Next steps: 1. Confirm the title selection with freemkv info, and that the source decrypts. |
Reporting a code
Section titled “Reporting a code”If a code’s next steps don’t resolve it, open an issue with:
- The full
Error: E<code> ...line. - A debug log: re-run with
--log-level 3(writes./log.txt), or enable the Debug toggle in autorip and collect the container logs. - Your freemkv version (
freemkv version) and platform.
See Troubleshooting for log details.