Miniflux: Feed Import Not Working — Fix

The Problem

Miniflux fails when importing feeds via OPML or when subscribing to individual feed URLs. Common error messages:

Updated March 2026: Verified with latest Docker images and configurations.

Unable to parse the OPML file
Feed not found
Unable to discover feed from the given URL
SSL certificate problem: unable to get local issuer certificate

Sometimes the import appears to succeed but zero feeds are actually added. Other times, specific feeds fail while the rest import correctly.

The Cause

Feed import failures in Miniflux typically come from:

  1. Malformed OPML file. Some RSS readers export OPML with non-standard XML or encoding that Miniflux’s strict parser rejects.
  2. Feed URL not directly accessible. Miniflux tries to fetch the provided URL. If it’s a website URL (not a feed URL), Miniflux attempts feed discovery — which fails if the site doesn’t include <link rel="alternate" type="application/rss+xml"> in its HTML.
  3. SSL certificate issues. Self-signed certificates or missing CA bundles in the Miniflux Docker container prevent HTTPS feed fetching.
  4. DNS resolution failures. The container can’t resolve feed domain names.
  5. Duplicate feeds. Miniflux silently skips feeds that already exist in the database.

The Fix

Method 1: Fix OPML File Format

Before importing, validate your OPML file. Open it in a text editor and check:

  1. The file starts with <?xml version="1.0" encoding="UTF-8"?> or similar XML declaration
  2. The root element is <opml version="2.0"> (Miniflux supports versions 1.0 and 2.0)
  3. Feed entries use xmlUrl attribute (not xmlurl — case matters in strict XML parsing)

Common fixes:

# Fix encoding issues (convert to UTF-8)
iconv -f ISO-8859-1 -t UTF-8 feeds.opml > feeds-utf8.opml

# Remove BOM (Byte Order Mark) if present
sed -i '1s/^\xEF\xBB\xBF//' feeds.opml

If your OPML was exported from Feedly or Google Reader, it should be compatible. OPML from Outlook or other email clients may have non-standard formatting — manually verify the XML structure.

Method 2: Use Direct Feed URLs

If feed discovery fails (“Unable to discover feed”), Miniflux couldn’t find a feed link on the provided page. Instead of providing https://example.com, provide the direct feed URL:

https://example.com/feed
https://example.com/rss
https://example.com/atom.xml
https://example.com/feed.xml
https://example.com/index.xml

Find the correct feed URL by:

  1. Check the page source for <link rel="alternate" type="application/rss+xml">
  2. Try common paths: /feed, /rss, /feed.xml, /atom.xml, /index.xml
  3. Use a feed finder tool or browser extension

Method 3: Fix SSL Certificate Issues

If feeds from HTTPS sites fail with certificate errors, the Miniflux container may be missing CA certificates:

services:
  miniflux:
    image: miniflux/miniflux:2.2.18
    environment:
      DATABASE_URL: postgres://miniflux:changeme@db/miniflux?sslmode=disable
      RUN_MIGRATIONS: "1"
      # Disable certificate verification for specific feeds (not recommended for production)
      # HTTPS_PROXY: ""
    volumes:
      - /etc/ssl/certs:/etc/ssl/certs:ro
    # ... rest of config

Mounting the host’s SSL certificates into the container resolves most certificate chain issues.

For self-signed certificates on internal feeds, add the CA certificate to the container:

docker exec miniflux sh -c "cat /custom-certs/myca.pem >> /etc/ssl/certs/ca-certificates.crt"

Method 4: Fix DNS Resolution

Test DNS resolution inside the container:

docker exec miniflux nslookup feeds.example.com

If it fails, add DNS configuration:

services:
  miniflux:
    image: miniflux/miniflux:2.2.18
    dns:
      - 1.1.1.1
      - 8.8.8.8
    # ... rest of config

Method 5: Check for Duplicates

Miniflux skips feeds that already exist. If your import shows “0 feeds imported” but no errors, the feeds might already be in the database.

Check via the Miniflux API:

curl -u admin:password http://localhost:8080/v1/feeds | python3 -m json.tool | grep -c "feed_url"

To force re-import, remove existing feeds first (Settings → Feeds → Remove All), then re-import the OPML.

Method 6: Import via API

If the web UI import fails, try the Miniflux API directly:

curl -u admin:password \
  -X POST \
  -F "[email protected]" \
  http://localhost:8080/v1/import

The API returns detailed error messages for each feed that fails, making it easier to diagnose specific issues.

Prevention

  • Export OPML regularly from Miniflux (Settings → Export) as a backup of your feed list.
  • Use the API for large imports — it gives better error reporting than the web UI.
  • Test individual feeds before bulk import if you suspect compatibility issues.
  • Keep Miniflux updated — feed discovery and parsing improvements are included in most releases.

Comments