Skip to content
James Brooks // thatnerdknows
all writing
// writing

When your iPhone won't AirPrint

April 10, 2026 · #networking #cups #printing

The symptom: an iPhone/iPad on the same Wi-Fi can’t print to your printer — it doesn’t show up, or it shows up but jobs fail — even though the printer works fine from computers. Classic with older Brother lasers (e.g. MFC-7360N) and other “host-based”/GDI printers shared through a CUPS server (Raspberry Pi, Unraid, a NAS, etc.).

The core reason: AirPrint needs a printer that speaks image/urf or PDF and advertises itself via Bonjour (mDNS) as an AirPrint service. A host-based printer only understands its vendor’s raster format (e.g. application/vnd.brother-hbp) — it is not a real AirPrint device, even if it advertises IPP on the network. The working AirPrint path is your CUPS server, which converts the iPhone’s PDF/URF into the printer’s language.

Below is how to isolate the fault (printer vs. CUPS vs. network vs. iOS) in a few minutes.


Step 1 — Prove the printer + CUPS work (independent of AirPrint)

From any machine, send a job straight to the CUPS queue over IPP. If you don’t have lp/ipptool, a tiny raw-IPP POST works too. Send both a text and a PDF job — the PDF replicates exactly what AirPrint sends:

lp -h CUPS_HOST:631 -d QUEUE_NAME sometext.txt
lp -h CUPS_HOST:631 -d QUEUE_NAME somefile.pdf
  • Both print → the printer, CUPS, and the PDF→printer conversion are healthy. Your problem is iOS-side (jump to Step 4).
  • Text prints, PDF fails → the CUPS raster driver can’t rasterize for this printer. Install a proper driver (for Brother lasers, brlaser is excellent) and re-point the queue at it.

Step 2 — Confirm it’s discovery, not the printer, when the iPhone sees nothing

Check what’s actually advertised on the LAN (run from a host on the same VLAN — mDNS is link-local):

avahi-browse -rt _ipp._tcp                 # basic IPP
avahi-browse -rt _universal._sub._ipp._tcp # the AirPrint sub-service (this is the one iOS needs)

Two very common findings:

  • The printer advertises itself (e.g. pdl=application/vnd.brother-hbp) but has no AirPrint sub-service / no image/urf → iOS can’t use it. That advertisement is a dead end and often the thing the iPhone is stuck on.
  • Your CUPS server advertises the AirPrint (_universal) service with image/urf + PDF → that’s the one to use. Note its Bonjour name (CUPS uses the printer’s description, which can be an odd string like “Monotone W/ Scanner”).

Step 3 — Make sure CUPS is actually offering AirPrint

On the CUPS host, the queue must be shared and advertise the AirPrint formats:

lpstat -p QUEUE_NAME          # exists + idle + accepting jobs
lpoptions -p QUEUE_NAME       # printer-is-shared=true; document-format-supported includes image/urf, application/pdf

If not shared: cupsctl _share_printers=1 and share the printer; ensure avahi-daemon is running and advertising on the LAN interface (a CUPS container on a Docker bridge won’t reflect mDNS to the LAN — run it host-networked or add an mDNS reflector).

Step 4 — When discovery + printing both work but the iPhone still won’t

It’s iOS-side, and usually the duplicate advertisement biting you (the printer’s dead-end entry vs. the CUPS one):

  1. In the print dialog, forget/remove the saved printer.
  2. Reboot the iPhone (clears the Bonjour/AirPrint cache).
  3. Re-add and explicitly pick the CUPS/AirPrint entry — not the printer’s own name.
  4. Clear any stuck job in the print queue (one hung job blocks all new ones).

The permanent fix

  • Disable the printer’s own IPP/Bonjour (in its web admin → Network → Services) so only the CUPS AirPrint queue is discoverable — this removes the dead-end entry iOS keeps caching.
  • Optionally rename the CUPS queue’s description to something obvious like Brother MFC-7360N (AirPrint).

Cross-VLAN note: if the iPhone is on a different VLAN than the printer, mDNS won’t cross it at all — enable your router’s mDNS reflector/repeater between those networks (and allow the firewall path to :631). But if they’re on the same VLAN, discovery isn’t your problem — it’s the host-based-printer / duplicate-advertisement issue above.

TL;DR: old GDI/host-based printers aren’t AirPrint printers; CUPS is what makes them AirPrint-able. Prove the CUPS PDF path works, use the CUPS Bonjour entry (not the printer’s), and kill the printer’s dead-end advertisement.

Written from a real fix: a Brother MFC-7360N (host-based, vnd.brother-hbp) shared via CUPS — PDF printed fine over IPP, so the fault was the duplicate/dead-end Bonjour entry the iPhone kept selecting.


Written by James Brooks — I run ThatNerdKnows (IT support + websites for small businesses). This is the deep end; if you’d rather just have it handled, that’s the day job.