How to fix E: Unable to correct problems, you have held broken packages (multiarch) in APT

APTINTERMEDIATEMEDIUMUpdated Dec 29, 2025ยท 179 views

This error occurs when apt detects held packages with unmet dependencies in a multiarch system. It typically results from installing conflicting packages from multiple architectures or interrupted updates, and can be resolved by checking held packages, using alternative package managers, or fixing broken dependencies.

Quick fix

Fixes E: Unable to correct problems, you have held broken packages (multiarch)

dpkg --print-architecture
dpkg --print-foreign-architectures
  1. Check your system architecture and current multiarch configuration
  2. Identify held packages causing the issue
  3. Update package lists and check dependencies
  4. Unhold problematic packages
apt โ€” error
dpkg --print-architecture
dpkg --print-foreign-architectures
E: Unable to correct problems, you have held broken packages (multiarch)

What this error means

Multiarch allows installing packages from different architectures on a single system (e.g., 32-bit i386 packages on 64-bit x86_64). When apt detects that held packages have unmet dependencies across architectures, it cannot automatically resolve the conflicts. A "held" package is one marked to prevent upgrades, and when these held packages have broken dependencies, apt cannot find a solution without violating the hold constraint. This commonly happens when different architecture versions of the same package require incompatible versions of their dependencies.

Typical symptoms

  • apt-get update or installation commands fail with the multiarch error message
  • Package manager unable to suggest solutions for dependency conflicts
  • Installing 32-bit or foreign architecture packages causes the error
  • System remains in a partially upgraded state after interrupted updates

Common causes

  1. Held packages with conflicting dependencies across different architectures
  2. Installing 32-bit i386 packages on a 64-bit system with incompatible dependencies
  3. Interrupted or incomplete package updates leaving the system in an inconsistent state
  4. Version mismatches between amd64 and i386 versions of the same library
  5. Third-party repositories providing packages that conflict with official repository versions

How to fix "E: Unable to correct problems, you have held broken packages (multiarch)"

1Check your system architecture and current multiarch configuration

First, identify your system architecture and see if multiarch is enabled:

bash
dpkg --print-architecture
dpkg --print-foreign-architectures

This shows your primary architecture (usually amd64) and any foreign architectures (like i386) you have enabled.

2Identify held packages causing the issue

List all packages currently held by the system:

bash
sudo apt-mark showhold

This displays which packages are preventing apt from making automatic changes. Note any packages related to the multiarch installation you attempted.

3Update package lists and check dependencies

Refresh your package lists and check for broken packages:

bash
sudo apt update
sudo apt check

The apt check command will report any dependency issues in your system.

4Unhold problematic packages

Release the hold on packages that are causing the conflict. Replace "package-name" with the actual package name:

bash
sudo apt-mark unhold package-name

If you need to unhold multiple packages, repeat this command for each one. You can also unhold all packages at once:

bash
sudo apt-mark unhold $(apt-mark showhold)
5Fix broken dependencies

Use apt install with the fix-broken flag to attempt automatic dependency resolution:

bash
sudo apt install --fix-broken

This command will try to resolve unmet dependencies by installing missing packages or adjusting package versions.

6Use aptitude as an alternative if apt fails

If apt still cannot resolve the conflicts, try aptitude, which has a more sophisticated dependency resolver:

bash
sudo aptitude install package-name:arch

When aptitude encounters conflicts, it will suggest alternative solutions. You can also use:

bash
sudo aptitude why-not package-name

to understand why a package cannot be installed.

7Remove conflicting packages if necessary

If dependency resolution fails, remove the problematic package and try again:

bash
sudo apt remove --purge package-name:arch
sudo apt autoremove
sudo apt update

Then attempt to install a compatible version or remove the multiarch requirement.

Advanced notes

Multiarch support on Debian and Ubuntu has known limitations. Some packages, particularly older or less-maintained libraries, do not properly support multiarch cross-dependencies. When packages of different architectures require incompatible versions of the same dependency, apt and aptitude may not find a solution without removing one of the architectures. In such cases, you may need to choose between the 32-bit and 64-bit versions. Avoid mixing packages from incompatible Debian/Ubuntu releases (e.g., Sid with Stable) as this creates "FrankenDebian" systems with unresolvable conflicts. If a package is truly unavailable in multiarch, consider alternative packages or building from source with proper architecture-specific flags. The dpkg --configure -a command can sometimes help if the system is left in a broken state from interrupted installations.

Frequently asked questions

What does "E: Unable to correct problems, you have held broken packages (multiarc" mean?
, 32-bit i386 packages on 64-bit x86_64). When apt detects that held packages have unmet dependencies across architectures, it cannot automatically resolve the conflicts. A "held" package is one marked to prevent upgrades, and when these held packages have broken dependencies, apt cannot find a solution without violating the hold constraint.
How do I fix "E: Unable to correct problems, you have held broken packages (multiarc"?
This error occurs when apt detects held packages with unmet dependencies in a multiarch system. It typically results from installing conflicting packages from multiple architectures or interrupted updates, and can be resolved by checking held packages, using alternative package managers, or fixing broken dependencies.
What causes "E: Unable to correct problems, you have held broken packages (multiarc"?
Held packages with conflicting dependencies across different architectures Installing 32-bit i386 packages on a 64-bit system with incompatible dependencies Interrupted or incomplete package updates leaving the system in an inconsistent state
Is the "E: Unable to correct problems, you have held broken packages (multiarc" error serious?
It is a medium-severity error โ€” more of a blocker than a risk. The steps above resolve it.

Official resources & further reading