Affected versions: RHEL 10.0 RHEL 10.1

πŸ“– ~1 min read

Table of contents
  1. Symptom & Impact
  2. Environment & Reproduction
  3. Root Cause Analysis
  4. Quick Triage
  5. Step-by-Step Diagnosis
  6. Solution – Primary Fix
  7. Solution – Alternative Approaches
  8. Verification & Acceptance Criteria
  9. Rollback Plan
  10. Prevention & Hardening
  11. Related Errors & Cross-Refs
  12. References & Further Reading

Symptom & Impact

DNF reports modular conflicts and refuses package transactions, delaying deployments and patch windows.

Environment & Reproduction

Occurs when mixed module streams are enabled across cloned host builds.

dnf module list --enabled
dnf install php -y

Root Cause Analysis

Incompatible module stream pins produce dependency solver deadlocks in AppStream.

Quick Triage

Collect enabled streams and recent module operations.

dnf module list --enabled
systemctl is-active dnf-makecache.timer
firewall-cmd --state
getenforce
journalctl -u dnf-makecache.service -n 50 --no-pager

Step-by-Step Diagnosis

Identify conflicting streams and transaction history entries that introduced mismatch.

dnf history list
dnf module info php
dnf module info nodejs
dnf -v install php 2>&1 | tail -n 120
Illustrative mockup for rhel-10 β€” appstream_conflict_diagnostics
AppStream modular conflict output β€” Illustrative mockup β€” Progressive Robot

Solution – Primary Fix

Reset conflicting modules and enable a single compatible stream.

Still having issues? Our Managed IT Services team can diagnose and resolve this for you. Get in touch for a free consultation.

sudo dnf module reset php -y
sudo dnf module reset nodejs -y
sudo dnf module enable php:8.2 -y
sudo dnf distro-sync -y
sudo systemctl restart dnf-makecache.timer
Illustrative mockup for rhel-10 β€” appstream_conflict_resolution
Resolved module stream and successful install β€” Illustrative mockup β€” Progressive Robot

Solution – Alternative Approaches

Use explicit package version locks when stream changes are not allowed.

sudo dnf install 'dnf-command(versionlock)' -y
sudo dnf versionlock add php-*

Verification & Acceptance Criteria

Package transactions complete with no modular filtering conflicts.

dnf module list php
dnf install php-cli -y
dnf check

Rollback Plan

Restore previous module state from change record and rerun distro-sync.

sudo dnf module reset php -y
sudo dnf module enable php:previous-stream -y
sudo dnf distro-sync -y

Prevention & Hardening

Pin approved module streams in configuration management templates.

Automate patch management and compliance across your fleet with our DevOps services.

dnf module list --enabled
journalctl -u dnf* -n 30 --no-pager

Related to package epoch mismatches, EUS channel divergence, and stale cache metadata.

Related tutorial: View the step-by-step tutorial for rhel-10.

View all rhel-10 tutorials on the Tutorials Hub β†’

Browse all common problems & solutions on the Tutorials Hub.

References & Further Reading

RHEL AppStream modularity docs and DNF solver behavior documentation.

Need Expert Help?

If you cannot resolve this yourself, our team offers hands-on Server Management, Managed IT Services, and flexible Support Plans. Contact us today β€” we respond within one business day.