browserPrint appears to detect printer but is unable to print to it. Returns 500 errors and network 'write' errors


Audience

Hi our company, Faithlife, uses your Zebra printers for one of our services in our church management software. We are inquiring about a problem we are noticing on the front end that we think our customers will run into involving your “browser print” SDK.

The code that is failing was pulled straight from <em>your documentation</em>. See below.
Here's a video of our interface and the console/network errors. https://recordit.co/d9RbFF6YId
Attached are some screenshots as well of the 500 errors and network errors.

Tdlr: On my MacBook pro the default?type=printers request succeeded and returned a printer then when it tried to do write it would error out and say something like Could not print to printer

<code>export const getDevices = (

onGetDevices: ({

defaultDevice,

devices,

}: {

defaultDevice: IZebraDevice;

devices: IZebraDevice[];

}) =&gt; void

) =&gt; {

//Get the default device from the application as a first step. Discovery takes longer to complete.

browserPrint.getDefaultDevice(

'printer',

(defaultDevice: IZebraDevice) =&gt; {

//Discover any other devices available to the application

browserPrint.getLocalDevices(

(devices: IZebraDevice[]) =&gt; {

onGetDevices({

defaultDevice: [defaultDevice, ...devices].find(({ name }) =&gt; name),

devices,

});

},

() =&gt; {

console.error('Error getting local devices');

},

'printer'

);

},

error =&gt; {

console.error(error);

}

);

}; </code>

We also noticed that your test app isn’t sending the request that is failing in our app so we are not sure if your example is representative of the API we are using. Here's what we see in the `default?type=printer` network tab response.

<blockquote> {"deviceType":"printer","uid":"usb#vid_0a5f&amp;pid_0120#D2N204202525#bus_002#addr_004#model_ZTC ZD420-203dpi ZPL","provider":"com.zebra.ds.webdriver.desktop.provider.DefaultDeviceProvider","name":"ZD420-203dpi ZPL (D2N204202525)","connection":"usb","version":4,"manufacturer":"Zebra Technologies"}

Here's what we see in the available network response type.
{}
which looks like an empty array

Here's what we see in the `write` network response tab.
Failed to write to device: Unable to establish connection to ZD420-203dpi ZPL (D2N204202525)

We are also curious if you have any better documentation that won’t require customers to install the SDK as we’ll most likely have people run into problems.
</blockquote>

Submitted by SSi1 on October 07, 2021 Permalink

When you get the 500 error, it means that the printer is unreachable. Are you sure that the printer is truly reachable? You can verify that by opening the settings of the Browser Print client on your MacBook, and click on the Change button next to the Default Devices. Then you should be able to see the the printer that is either connected via USB or the network. If it's not there, then you will get 500 error.

Submitted by mattoxcutphoto… on October 11, 2021 Permalink

Yeah i've used this before and so did other developers. https://www.zebra.com/us/en/forms/browser-print-request-osx.html

That works, but it seems to work differently than their example code in the docs because I don't see the same requests when using that as when I use the example code.

I think the question we need to get answered is what is a reliable way for our customers to setup to be able to use browser print?

Submitted by mattoxcutphoto… on October 22, 2021 Permalink

Bump --

What is the recommended way for users (not developers) to operate the zebra printer? Do you guys have a step-by-step guide that doesn't require the SDK to install?

Submitted by brykenote@gmail.com on October 22, 2021 Permalink

Hi I am one of one of the developers working on supporting Zebra label printers for the customers of our app.

I downloaded your Browser Print sdk found here: https://www.zebra.com/us/en/products/software/barcode-printers/link-os/…

This download requires a form to be filled out that requires a company name. The files included in the download are more than the print web service. It also includes documentation. Is there documentation that we can refer our customers to that will allow them to setup a zebra label printer, like the ZD420, to work with a web app using your browser print sdk? And a way for them to download the web service without filling out a form and receiving the documentation for development?

Also we are trying to set this up for others internally and as Matt has mentioned, we are noticing some differences with how the example is setup and how the documentation recommends checking for available printers. Matt was having some issues getting everything working on his machine even after installing the sdk. We are hoping we can get this working reliably for customers as well as other developers.