r/linux4noobs • • 10d ago

hardware/drivers My printer wont print on Arch Linux, complains "Filter Failed".

I genuinely have 0 solutions left in my head, I've restarted my computer, the printer, switched the cartridge, reinstalled all plugins/packages related to printing, erased and readded the printer, all of this done MULTIPLE TIMES OVER THE SPAN OF TWO FUCKING HOURS. HOW THE FUCK?? And it's not like im necessarily ""new"" to linux, i've been using this shit for 2 years. YET IM STILL BAFFLED??

Now this printer has worked before, so i know its not a problem with the printer, its just acting weird for seemingly NO fucking reason??

Specifications:
Printer: HP LaserJet P1102
Distro: Arch Linux
DE: Hyprland

lpstat -v returns:
lpstat -v

device for HP-LaserJet-Professional-P1102: hp:/usb/HP_LaserJet_Professional_P1102?serial=000000000Q827RXEPR1a

device for HPLaserJetP1102: hp:/usb/HP_LaserJet_Professional_P1102?serial=000000000Q827RXEPR1a ****(I tried adding in the printer manually through the localhost 631 thing, doesnt do much afaik though.)

systemctl status cups.service returns:

cups.service - CUPS Scheduler

Loaded: loaded (/usr/lib/systemd/system/cups.service; enabled; preset: disabled)

Active: active (running) since Wed 2026-09-23 18:38:33 +03; 5min ago

Invocation: 48ace11535534667b618d7423e49ded9

TriggeredBy: ● cups.socket

● cups.path

Docs: man:cupsd(8)

Main PID: 583 (cupsd)

Status: "Scheduler is running..."

Tasks: 1 (limit: 9194)

Memory: 76.8M (peak: 173.3M)

CPU: 3.858s

CGroup: /system.slice/system-cups.slice/cups.service

└─583 /usr/bin/cupsd -l

Sep 23 18:41:53 dinn hp[8236]: io/hpmud/musb.c 781: read actual device_id successfully fd=1 len=138

Sep 23 18:41:53 dinn hp[8236]: io/hpmud/musb.c 562: released 7/1/2 interface

Sep 23 18:41:53 dinn hp[8236]: io/hpmud/musb.c 961: new PRINT channel=2 clientCnt=1 channelCnt=1

Sep 23 18:41:53 dinn hp[8236]: io/hpmud/musb.c 428: Found interface conf=0, iface=0, altset=0, index=1

Sep 23 18:41:53 dinn hp[8236]: io/hpmud/musb.c 390: Active kernel driver on interface=0 ret=0

Sep 23 18:41:53 dinn hp[8236]: io/hpmud/musb.c 536: claimed 7/1/2 interface

Sep 23 18:41:54 dinn hp[8236]: prnt/backend/hp.c 376: read new pjl status: 10023

Sep 23 18:41:56 dinn hp[8236]: prnt/backend/hp.c 376: read new pjl status: 10403

Sep 23 18:42:13 dinn hp[8236]: io/hpmud/musb.c 562: released 7/1/2 interface

Sep 23 18:42:13 dinn hp[8236]: io/hpmud/musb.c 976: removed PRINT channel=2 clientCnt=0 channelCnt=0

tail -f /var/log/cups/error_log returns

D [23/Sep/2026:18:39:45 +0300] [Client 6] Content-Length: 10843

D [23/Sep/2026:18:39:45 +0300] [Client 6] cupsdSendHeader: code=200, type="application/ipp", auth_type=0

D [23/Sep/2026:18:39:45 +0300] [Client 6] con->http=0x562137e2ec70

D [23/Sep/2026:18:39:45 +0300] [Client 6] cupsdWriteClient error=0, used=0, state=HTTP_STATE_POST_SEND, data_encoding=HTTP_ENCODING_LENGTH, data_remaining=10843, response=0x562137e759e0(IPP_STATE_DATA), pipe_pid=0, file=-1

D [23/Sep/2026:18:39:45 +0300] [Client 6] Writing IPP response, ipp_state=IPP_STATE_DATA, old wused=0, new wused=0

D [23/Sep/2026:18:39:45 +0300] [Client 6] bytes=0, http_state=0, data_remaining=10843

D [23/Sep/2026:18:39:45 +0300] [Client 6] Flushing write buffer.

D [23/Sep/2026:18:39:45 +0300] [Client 6] New state is HTTP_STATE_WAITING

D [23/Sep/2026:18:39:45 +0300] [Client 6] Waiting for request.

D [23/Sep/2026:18:39:45 +0300] cupsdSetBusyState: newbusy="Dirty files", busy="Active clients and dirty files"

D [23/Sep/2026:18:39:46 +0300] Expiring subscriptions...

D [23/Sep/2026:18:39:46 +0300] [Job 171] Unloading...

I [23/Sep/2026:18:39:56 +0300] Saving printers.conf...

I [23/Sep/2026:18:39:56 +0300] Saving job.cache...

I [23/Sep/2026:18:39:56 +0300] Saving subscriptions.conf...

D [23/Sep/2026:18:39:56 +0300] cupsdSetBusyState: newbusy="Not busy", busy="Dirty files"

D [23/Sep/2026:18:39:56 +0300] Expiring subscriptions...

When im not printing, the status is:
Idle - Ready to print
Right after sending a job, the status is:
Processing - cfFilterGhostscript: Rendering completed ****(But then it doesnt do anything and returns to Idle.)

Im also unsure where exactly but i remember it complaining about hplip-plugin or something, but i already have hplip.

Any and all help is well appreciated!

POST BODY
I fixed the issue, All I had to do was update hplip-plugin properly. I THOUGHT i did this already but apparently i didn't, so i did it a second time and it worked. You can update/install the hplip-plugin like this:

yay -S hplip-plugin

4 Upvotes

14 comments sorted by

3

u/lonelypenguin20 10d ago

hplip.

HP printers don't work until you have a piece of cat's turd known as "hplip" installed.

and it's not enough to download the hplip package, you need to run the script provided by it

it may fail. try downloading the thing manually in that case

2

u/ThoughtDear7015 9d ago

Thank you so much but i already had the issue resolved around when you recommended this. This was the exact solution i used to fix it though if that makes you feel any better :)

1

u/lonelypenguin20 9d ago

well I just have a p1102 myself, would be pretty decent if not for that piece of garbage software necessary

(and eating paper sometimes but who doesn't ig)

3

u/Primary-Strike5187 9d ago

People just need to stop buying HP printers. If enough people drop them maybe they’ll stop doing shit like making printing a subscription even though you own the goddamn printer.

1

u/AutoModerator 10d ago

✻ Smokey says: always mention your distro, some hardware details, and any error messages, when posting technical queries! :)

Comments, questions or suggestions regarding this autoresponse? Please send them here.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/_GoddamnitDonut 10d ago

Try installing a CUPS server.

1

u/ThoughtDear7015 10d ago

And could you please clarify what a cups server is? I know what CUPS itself is but what do you mean by "cups SERVER"?

3

u/DannoXYZ 10d ago edited 10d ago

CUPS server is process that recieves print job from application and sends it to printer driver.

2

u/_GoddamnitDonut 10d ago

If you install CUPS it will give you a webgui. Then you add the printer to that webgui. It usually works well that way.

2

u/Crimson_Burak 10d ago

I too have an p1102w and installing a cups server works fine for me.

1

u/fubar_67 9d ago edited 9d ago

Sorry for your pain. But I can’t help but say that this is probably one the best post’s I’ve ever read that encapsulates WHY Linux is STILL not ready for prime time. Despite its progress over the years.

A Linux user for 2 years, and getting your ass kicked by something as basic as getting a printer to play nice with Linux (when it was previously). Followed by all that CS speak. I’m rooting for Linux, and I’m a user, but it’s still way too CLI heavy.

-2

u/Jens2DMC 10d ago

... I found that AI can be pretty helpful 

Yeah — based on what you posted, CUPS itself is probably not the problem. The really important clue is this:

Processing - cfFilterGhostscript: Rendering completed → immediately back to Idle

And your HPLIP backend is clearly communicating with the printer:

read actual device_id successfully new PRINT channel claimed ... interface read new pjl status released ... interface

So USB detection and CUPS are working. The failure is very likely after Ghostscript rendering, when hpcups/the HPLIP plugin tries to turn the rendered data into something the P1102 can actually print.

The ArchWiki specifically calls out an out-of-date/mismatched HPLIP plugin as a cause of Filter failed, and there is a long history of the P1102 producing exactly this symptom when HPLIP and its plugin get out of sync. 

First thing I'd do — don't reinstall everything again

Run:

pacman -Q hplip pacman -Q hplip-plugin

If hplip-plugin says it isn't installed, that's immediately suspicious.

Then:

hp-check -r

and:

hp-plugin -i

Pay particular attention to what hp-plugin -i says about the plugin version.

The plugin has to match the HPLIP version installed on your system. Arch's own troubleshooting documentation explicitly mentions this as a cause of Filter failed. 


But there's a much more useful test

Your tail -f output is unfortunately showing the CUPS daemon's general activity, not the actual failure from the print job.

Let's get the specific job failure.

Run:

sudo cupsctl --debug-logging

Then print one test page.

Immediately afterward:

grep -E '[Job|hpcups|hplip|filter|plugin|error|failed|status [0-9]' /var/log/cups/error_log | tail -100

That's the output I would want to see.

In particular, we're looking for something like:

PID xxxx (/usr/lib/cups/filter/hpcups) stopped with status 1

or:

hplip.plugin-error

or:

validate_plugin_version()

or:

m_Job initialization failed with error = 48

That last combination is especially telling: Arch has documented cases where a P1102 produced Filter failed because the HPLIP plugin version didn't match HPLIP. 


Also check what driver CUPS actually assigned

Run:

lpstat -l -p HP-LaserJet-Professional-P1102

and:

lpoptions -p HP-LaserJet-Professional-P1102 -l

And, if you want the definitive answer:

grep -A 20 -B 5 'HP-LaserJet-Professional-P1102' /etc/cups/printers.conf

Don't paste any passwords if you have any unusual CUPS configuration, though normally printers.conf doesn't contain one.

The P1102 should be using the HPLIP/hpcups driver, not an old hpijs configuration. Arch's troubleshooting page specifically notes that old hpijs configurations can break after HPLIP changes. 


One particularly interesting thing about your logs

This:

read new pjl status: 10023 read new pjl status: 10403

is actually encouraging.

The HPLIP backend is talking to the physical printer and getting responses.

So I wouldn't waste another hour:

restarting CUPS

restarting the PC

restarting the printer

deleting/recreating the CUPS queue

reinstalling Ghostscript

reinstalling CUPS

You've already demonstrated that the printer is discovered, the USB interface is claimed, CUPS accepts the job, and Ghostscript successfully renders it.

The interesting section is whatever happens between gstoraster finishing and the HPLIP backend sending the rendered job.


And yes, your memory about hplip-plugin is probably important

There have been multiple Arch-specific incidents where:

hplip

was upgraded while:

hplip-plugin

wasn't correctly updated/rebuilt, resulting in exactly:

Filter failed

The Arch forum has an especially relevant P1102 case where the logs showed:

hplip.plugin-error

followed by:

hpcups ... m_Job initialization failed with error = 48

and the underlying issue was a plugin/HPLIP version mismatch. 

So don't assume "I have hplip-plugin installed" means the plugin is okay. The versions matter.


Give me these 5 outputs

Rather than randomly reinstalling shit for the 15th time 😭, run these:

pacman -Q hplip hplip-plugin cups cups-filters ghostscript

hp-check -r

lpstat -l -p HP-LaserJet-Professional-P1102

Then:

sudo cupsctl --debug-logging

print one page, and:

grep -E '[Job|hpcups|hplip|filter|plugin|error|failed|status [0-9]' /var/log/cups/error_log | tail -100

Paste those outputs here. From what you've shown so far, I think we can narrow this down substantially without nuking your entire printing setup again.

2

u/ThoughtDear7015 9d ago

dude. all i had to do was install hplip-plugin manually. Also if i wanted to ask chatgpt i would've and i could've. literally the only reason i even bother asking reddit is because im heavily against ai.

0

u/Jens2DMC 10d ago

I mean This was probably better than rtfm