I present to you a tragedy in 11 parts, about me trying to report a bug against the software of a large hardware company.

Unsurprisingly, to these people, software doesn’t exist, other than to support some physical, touchable device. Having cut my developer teeth in the device maker cradle of the Netherlands, Eindhoven, I shouldn’t have been suprised. In addition, if you’re “just” a consumer, you don’t exist. Which again, I should have guessed earlier.

All I can conclude from this whole endeavour is: I should have done more research into hardware companies that are wise to the worlds of software. Canon is not such a company. Don’t buy Canon products if you can help it!

The situation: Imma be responsible!

The Scanner

The case is quite simple. I spent wayyyy too much money on a proper (business-like) document scanner because I was going to be a real adult and get my paperwork shit in order and I was going to scan all the things.

Knowing myself, I wanted a device with as low a barrier to use as possible (because otherwise I wouldn’t use it), so I dropped 400+ euros on a scanner with a wifi connection, so I can use it without having to turn on my computer. I was going to use the WiFi to scan to my mobile app (while standing next to it) which could then immediately upload it to Dropbox.

The device I got was a Canon ImageFormula DR-C225W, and it comes with some crappy desktop software on the Mac, and some mobile app that is called CaptureOnTouch Mobile.

Upon initial contact, the device was a beauty, no doubt technologically quite impressive, and everything I’d hoped for. The software, on the other hand, turned out to be horrible! Crappy user interfaces, lots of clicking to get anything done, and it was a problem to get my Mac or my phone to pick the scanner up at all. After a couple of hours of sweating and trying, I finally got everything to work. I was not exalted, but satisfied.

After all, I should have known, buying from a traditional hardware-first company.

The bug: if you copy data, it’ll become inconsistent

After leaving the device off for a couple of weeks, I finally got a piece of paper that I deemed important enough to scan. So I turned the scanner on, put the piece of paper in, and loaded the app on my mobile phone. The app greets me with a nice green ball, telling me the scanner is available.

The App

I hit the scan button, a new window pops up saying “Scanning…”

And then a minute later it says “Unknown error”. I try again and again and again, switching things off and on. Nothing works.

First, I sent off a pissed customer service request. Deciding a couple minutes later that would not help me at all, I decided to do some more debugging myself. I tethered my phone to my laptop and route my phone’s network traffic through my laptop so I can use Wireshark to sniff the traffic coming out of the app:

Fortunately, this is quite easy on iOS, as simple as

# rvictl -s <unique device id>

And I see the following traces:

10.0.0.12 (my phone)    -> 10.0.255.255            UDP BROADCAST
10.0.0.27 (the scanner) -> 10.0.0.12 (my laptop)   UDP REPLY

Hey, that looks like a discovery protocol that the scanner is responding to! This is making the discovery icon in the app turn from red to green. But what happens when I click the scan button:

10.0.0.12 (my laptop)   -> 10.0.0.15 (?????)       UDP MESSAGE

What? Where is that address coming from? Not even 1 minute ago you received a reply message from the scanner, that should tell you its IP address! Why are you suddenly sending a message to 10.0.0.15?

Where could the app even get that IP address from? Doesn’t look like that IP address was in the UDP reply packet.

Oh wait!

What if this was the IP address that the scanner had during its initial discovery? What if the app stored that IP address somewhere in a database at that point? By now, the scanner has a new IP address, but the app is completely disregarding the source of the UDP packets, it’s probably just looking at a serial number inside.

So how do I get the app to clear its database? I can’t pick another scanner from the discovery list, because I only have the one. But I can uninstall the app, reinstall it, and rediscover the scanner from scratch.

And sure enough, that works. Until the IP lease for the scanner expires again, of course.

D’oh!

That’s a silly bug, but easy enough to fix, right?

If I could only pass on the research that I had already done to the app developers.

If only…

The unsupportive support personnel

So this is where I try to get in touch with Canon, to let their app developers know of an easy to fix bug. Surely, they’ll be happy to hear about this? The bug is easy enough to confirm and to fix.

After failing to find something on the web related to a Canon software department, or any contact address for these people, I decide to file a support request on the main website.

Let me walk you through the support channel I used, it’ll become relevant later: I went to the website (canon.com), clicked Consumer Products, Contact, Send e-mail, and detailing what I had found.

Paraphrased, the conversation went as follows (full e-mails are attached below):

  • [0] ME: I have a bug report about the CaptureOnTouch Mobile app. Here are the steps to reproduce the bug, the probable cause (as determined by a network trace) and the probable fix.
  • [1] TOM METSELAARS: Please give me the serial number and the address of your scanner.
  • [2] ME: WTF? I just told you it’s a software problem. Please just pass on the bug report.
  • [3] I get called by a representative whose name I forgot: Please just give us the serial number so we can enter the support request into the system.
  • [4] ME: Sigh. OK, here’s the serial number. It’s a software issue though.
  • [5] WENDY ELFRINK: Please give us the address where your scanner is.
  • [6] ME: Wut? What does that have to do with anything?? Ok here it is.
  • [7] RUTGER HERMENS: The scanner with that serial number is registered to another company. We will only service it if we register this to your company, please give us your business #.
  • [8] ME: I only want to report a software bug. Do what you need to do. P.S. I’m a consumer, not a company.
  • [9] TOM METSELAARS: We forwarded your issue to the correct department!
  • [10] EVELIEN WEIDEMA: You’re a consumer. We don’t deal with those. Go away.

This is where I’m going completely bonkers and I just have to write this blog post to get this whole thing off my chest. Some things that are so wrong here:

  • I followed the links from the website, went via Consumer Products to Support, but still ended up in a support channel that is only for businesses?
  • The support personnel couldn’t directly tell from the way I was NOT referencing P.O. numbers that I was a consumer and was in the wrong support channel? I even told them explicitly!
  • The insistence of 1st line support that my request was forwarded to the right people, where it obviously wasn’t.
  • The second line support just closing my issue, probably without properly reading it but just closing at the first sign of the word “consumer”, without forwarding it to the right people. Instead, telling me go to the Canon Business Center to get service for my consumer device (what is up with that?)
  • All the while, everyone is completely disregarding that I don’t actually need service for any particular device: I just want some information passed on to some people inside this giant company, and this web form happens to the only communication channel I have to the inside.

So I’m begging of the internet: please please PLEASE, if you know anyone at Canon, have them look up who the CaptureOnTouch Mobile app developers are on the corporate intranet, and have them forward this link.

I would very much like to not have to reinstall the scanner app every time I want to scan a document. Not to mention, probably the rest of the internet does as well.


[0] (Message entered as support case 1-7149422262).

ME: I recently entered support case 1-7149337017.

This is a PR about an Unknown Error that I would get while trying to use the iOS app CaptureOnTouch Mobile with my ImageFormula CR-225W. I have diagnosed what the cause of the issue is, and would like to file a formal bug report with the app team so that they can fix this bug.

The method to reproduce is as follows:

  1. Join scanner to network in AP mode (i.e. as a regular DHCP client). Scanner gets IP address 10.0.0.15.
  2. Pair phone with scanner.
  3. Turn off scanner.
  4. Turn scanner back on weeks later. Scanner gets IP address 10.0.0.27.
  5. Start CaptureOnTouch app. CaptureOnTouch app does scanner discovery via UDP broadcast, gets a reply from 10.0.0.27 and turns the scanner icon green indicating that a scanner was found.
  6. When I initiate my scan, the CaptureOnTouch app sends the packets for initiating the scan to 10.0.0.15, the cached IP address from the initial discovery!
  7. Getting no reply, the scan times out.
  8. Reinstalling the app and rediscovering the scanner fixes the problem and I can scan.

Of course, as soon as I turn the scanner off again, this will just fail again in a couple of weeks. The solution would be to update the IP address in the scanner database with the address the scanner is replying from during discovery.

Note: maybe selecting a different scanner from the list in the discovered scanner menu would also reset the cached IP address, but I can’t do that because I only have one scanner!

Please get back in touch with me and inform me how/when this bug is going to be resolved in the official iOS app


[1]

Dear Mr Huijbers,

Thank you for your request and for contacting Canon.

We would like to assist you in a speedy and prompt manner. In order to do so, we require the correct serial number of your scanner.

The serial number of our DR Scanners can be found on a gray sticker on the back or bottom of the machine. The serial number is a combination of 2 letters followed by 6 digits.

At the same time, it would also be helpful if you would send us the address details of the current location of this scanner.

We trust the above information is of use to you. However, should you have any further questions, please do not hesitate to contact us again either by replying to this e-mail or by contacting us on the contact number listed below.

Yours sincerely,

Tom Metselaars

Canon Services & Support


[2]

Hello Tom,

I am quite disappointed that you didn’t read the text I typed into my support ticket, but instead chose to go down a flow chart with canned responses.

I am doing the work of your QA department here, to make proper use of a piece of hardware that I paid 400+ euros for. The least you can do is take my support requests seriously.

  • The serial number of my scanner is not in question. The bug is in the iOS app, of which I have
  • network traces to prove the bug is there, and I can prove it’s unrelated to the exact instance of
  • the scanner I have (however unlikely, it might be related to the MODEL, which is an ImageFormula
  • DR-C225W as I already mentioned before). The address of my scanner is at the Mauritsweg in
  • Rotterdam. I fail to see what that has to do with anything. I don’t need a technician to look at
  • the hardware. The hardware is fine, the iOS software just needs a small bugfix update.

Please just pass my bug report on to the proper app developers. I assure you they will be happy to get it, and that it contains sufficient details for them to be actionable.

Regards, Rico


[4]

Ok, the serial number is XX12345.

But I’d like to stress this is purely a software issue, nothing to do with the scanner itself.

Cheers, Rico


[5]

Dear Mr. Huijbers,

Thank you for your e-mail and for contacting Canon.

An engineer will contact you as soon as possible.

Just to get our information correct please send us the correct adress where the DR scanner is located at the moment.

Yours sincerely,

Wendy Elfrink

Canon Services & Support


[7]

Dear Mr. Huijbers,

Thank you for your e-mail and for contacting Canon.

The machine with serial number XX12345 is registered with Copaco (a reselling company), with which you might have a service contract. If you would like to receive service from Canon instead, we can register the machine under your company’s name. If this is the case, please provide us with your company name and kvk number.

Yours sincerely,

Rutger Hermens

Canon Services & Support


[8]

Rutger–

I just want to report a bug to the mobile app team, because I want to use their app and I don’t wan to reinstall the app every time I want to scan a document. I don’t have a problem with my scanner.

Disregard my physical scanner, and pass on my bug report which is about SOFTWARE to the app developers please. I was told you needed the serial number to be able to enter support cases into The System (because apparently software defects don’t exist?), so that’s why I gave it. But the hardware is not at issue here.

In other words, I don’t care what happens to your records, do what you need to do to be able to go through The System and make sure my bug report gets to the CaptureOnTouch Mobile developers.

P.S: I am a consumer, so I do not have a company name or a KvK number. The fact that the thing is registered with another company is a bit weird, I bought mine online from CoolBlue, but I do have photo proof that my serial number is XX12345.


[9]

Thank you for your request and for contacting Canon.

We are pleased to inform you that we have received and forwarded your request to the correct department. You will be contacted once your request has been fully processed by this department.

We trust the above information is of use to you. However, should you have any further questions, please do not hesitate to contact us again either by replying to this e-mail or by contacting us on the contact number listed below.

Thank you again for contacting Canon.

Yours sincerely,

Tom Metselaars

Canon Services & Support


[10]

Dear Mr. Huijbers,

We have received a request for service for your DR-C225W. Unfortunately Canon Nederland does not provide service on machines for consumers.

I can advise you to contact Canon Business Center Nederland on number 088-2105500.

My apologies for not being able to help you.

Kind regards,

Evelien Weidema

Sales Administration Professional