QR code scanner in 1Password 6.2.1 (Preferences... | Teams | + | [Scan QR Code]) not working

fseesinkfseesink Junior Member

Ok, I must be daft, because I simply can't get this to work. I recently signed up for 1Password for Families to try it out. After doing all the setup on the Web, I went to add my Family setup to 1Password on my laptop (MBP w/ Retina running 10.11.4 with 1Password 6.2.1), and found that under Preferences... | Teams that if I clicked [+] I was presented with the option to either [Scan QR Code] or [Sign In Manually]. Since I had the QR code from the Emergency Kit, figured I'd give that a try.

But no matter what I do, I can't seem to get it to take. I click the button [Scan QR Code], which brings up a transparent window. I open the Emergency Kit PDF, move the QR window over it, but nada. And there's no button to click on to say "Scan Now", etc. I tried hitting the SPACEBAR, RETURN key, all the usuals one might have used IF such was required. But all for naught.

Now I get that encryption is hard, and I truly appreciate all that AgileBits is doing here. I'm about 1/2 through the whitepaper as I truly do want to understand how they've done what they've done. And there's no doubt in my mind that some things will simply never be easy. But this seems more an issue with a basic screen grab/UI. And I'm guessing somewhere I must be doing something stupid here.

But simply put, it appears to me that the QR code scanner feature in the OS X version of 1Password isn't working. Has anyone else gotten it to work, and if so, what am I missing?

If not, hopefully someone from AgileBits will see this.


1Password Version: 6.2.1
Extension Version: 4.5.5
OS Version: OS X 10.11.4
Sync Type: DropBox (but not relevant here)

Comments

  • brentybrenty

    Team Member
    edited November 2016

    @fseesink: That's really weird, and I can't recall having heard of anyone else having issues with the 1Password for Mac QR scanner...which is frankly even weirder, since pretty much very feature has a bug now and then!

    I use it myself all the time, and I can still remember the first time I used it, not knowing how it would work, and expecting I'd have to do something. But you literally just drag the window over a QR code and it read it an disappears in an instant — at least that's what's supposed to happen.

    I'm really sorry that you're having trouble with this, and that I don't have an answer for you yet, but I'm confident we'll get to the bottom of this. Can you tell me which app you're opening the PDF in? Your setup seems to be the same as mine, but do you have 3rd party software that might be interfering — perhaps something for managing screenshots or video grabs? Definitely restart your Mac, in case it's just a temporary glitch.

    To be clear, this is what you should be seeing happen:

    And frankly I'm impressed that someone was able to capture that at all, because it happens pretty fast. Let me know what you find!

  • thightowerthightower T-Dog Agile's Mascot

    @fseesink

    Here is my take on the issue you are describing. It may or may not be the issue but its the one that has caught me on a couple of occasions.

    I was using quick look by pressing the spar bar with the document selected to open it from my desktop. When you do that the QR code scanner will not work. Instead at the top of that quick look window is a "Open in preview" button press that and the PDF will open via preview and this time the QR code can be scanned.

    Cc/ @brenty

    re: mod channel

  • brentybrenty

    Team Member
    edited April 2016

    @thightower: Oh no... :scream:

    It totally makes sense to me that QuickLook could be an edge case...except that's actually how I usually open the QR code from my backup vault, so it definitely works here. Quick look appeals heavily to my innate laziness. Let's compare our setups to see how they might differ:

    • OS X 10.11.4
    • MacBook Pro retina 15" (2014)
    • 1Password 6.3 beta
    • "Local" AgileKeychain vault with PDF attachment in item

    @fseesink: Be sure to let us know any additional details about the steps you're taking. Thanks in advance!

  • fseesinkfseesink Junior Member

    @thightower @brenty Thanks for the feedback. Man, for a moment I thought, "Oh crap, QuickLook!" as I use that all the time. But sadly this didn't help.

    @brenty I simply use Preview for opening the PDF. I do have PDFPenPro 4.7.2 and 6.3.2 installed in /Applications (had issues w/ v6 that made me keep v4 around for editing certain files), but I honestly don't use them except on extremely rare occasions. Been finding Preview suits me just fine.

    I don't use anything for managing screenshots or video grabs (at least nothing I keep running). I simply use the OS X keyboard shortcuts for doing screengrabs whether whole screen or using the crosshairs. As for 3rd party apps which might interfere, started thinking about it and nothing jumps out at me. I mean, I have various apps installed, including apps like ScreenFlow, but they're all drag/drop affairs into /Applications, and in the specific case of ScreenFlow, haven't run it in more than a year. (Been meaning to use it to do videos but just haven't had time.)

    I tried keeping the Console up while trying to use the QR code scanner, but nothing pops when I bring it up or try to use it. No log messages of any kind.

    I have a pretty vanilla setup for Mac standards. Only apps I keep running regularly are 1Password Mini (duh), DropBox, Shimo (for VPN), BTSync, and then there's Little Snitch and Murus for firewalling. (Yeah, I know, 2 firewalls... 3 if you include the OS X app firewall, but I use Murus for network firewalling to control the built-in PF firewall, mostly for inbound connections to services.)

    I think I've done a reboot already, but let me try that again to be sure. If there's any change, will post here. In the meantime, if you can think of anythings that might cause interference, I'm all ears. (I tried looking in /Library/Extensions but it's pretty vanilla stuff. Been trying to think what kind of apps/plugins/extensions might cause this issue but really can't think of anything.)

  • fseesinkfseesink Junior Member

    @thightower @brenty Rebooted and tried immediately by only opening the emergency kit in Preview and then 1Password. No love. Tried disabling my firewalls on the weird chance it somehow did something truly odd networking-wise (which doesn't even make sense). No love. Dug around and found a plugin for CamTwist (an app for doing video effects in most apps like Skype, etc.) in /Library/CoreMediaIO/Plug-Ins/DAL, removed it, rebooted, tried again. No love.

    Then went all out and wiped the /Library/Caches and ~/Library/Caches folders in case somewhere along the way there was some kind of cached file/app/plugin/whatever that might not reflect the current state of things, rebooted, tried again. Still no love.

    At this point I'm tapped. Not finding anything to make that QR scan window react in any way.

  • khadkhad Social Choreographer

    Team Member

    Thanks for writing back, @fseesink. I'm really sorry that the problem persists.

    Unfortunately, when these QR scanner failures happen, there is not much we have been able to do to resolve them. The QR scanner is essentially a black box. We send it an image, and it sends us back the data or nothing. We don't get any error messages from it when it fails. That, perhaps obviously, makes it really hard to troubleshoot.

    I've seen it fail myself on occasion, but in those cases I have manually input the information. It's frustrating to me to not have a solution for you right now, but I didn't want you to spend more of your time trying to solve it than you already have.

    We are tracking the failures, though, to see if we can eventually find a common denominator. If we have additional questions, we will be sure to reach out. It would be great to have a solution or workaround in the future.

    ref: OPM-3823, OPM-4021

  • fseesinkfseesink Junior Member
    edited April 2016

    @khad Well here's where it's weird. I'm having this issue on my mid-2014 15" MacBook Pro w/ Retina. But just now I thought to try it on my other machine. My Late 2012 27" iMac w/ same versions of everything? Works just fine using exact same QR code!

    I'm not getting even an inkling on the laptop, though, that the QR reader is trying to read at all. No color changing border in that QR window. Nada. But I can't for the life of me figure out what's so different between the machines. I mean, I tend to install/use the same software on both. There are differences I'm sure, but usually minor things. Like I noticed on the iMac I had a free App Store app called QR Journal installed. Didn't see that on my laptop, so tossed it on there. But no difference w/ 1Password. But when I dragged/dropped the QR code into QR Journal on the laptop, it read it just fine. So not quite sure what you mean when you refer to "the QR scanner is essentially a black box". The same QR code that worked on the iMac is read by QR Journal on the laptop. So the QR code sure appears to be valid. The issue is specific to 1Password on my laptop from what I can tell. Now if you're saying you're using code/some library for doing QR code reading that you don't have the source to, how is that? Should users be concerned?

    Anyway, I wrote here just to let you know what I've seen. Yes, it's disappointing you don't seem to be able to narrow this down. Having a software developer say something in their own program is a "black box" doesn't exactly instill confidence to be honest. But I know some software out there has demonstrated issues when there were conflicting drivers/extensions/plugins/etc. The original Mac OS was rife with such issues to the point you had a 3rd party program built specifically to help deal with it (Conflict Catcher), which eventually led to Apple even adding in Extensions Manager. I would have hoped OS X didn't suffer the same fate, but there are consequences to late binding I guess. Not sure why this would be the case here, but considering what your application does, I'm even more concerned to be honest that an external file of some kind could interfere with its operations. If that's the case, what other games could one play?

    Please do let me know if you think of anything you'd like me to look at that might help you narrow down why this is happening. I have no problem helping you out. I'm just at a loss for where to look quite frankly.

  • khadkhad Social Choreographer

    Team Member

    @fseesink,

    Indeed. There is almost never anything wrong with the QR code itself. You will be able to scan it just fine on other machines. It just silently fails sometimes, and we have no error message or easy way to track it down.

    I'm even more concerned to be honest that an external file of some kind could interfere with its operations. If that's the case, what other games could one play?

    That is not the case. Another app with a QR code scanner will not have any effect on the scanner in 1Password, nor will any external libraries you have installed. Everything is self-contained within the 1Password app.

    Now if you're saying you're using code/some library for doing QR code reading that you don't have the source to, how is that? Should users be concerned?

    There is no need for concern. The only output accepted is in the form of plain text. It is not executable. The worse that could happen is that the inputs are populated with a rude message if someone wanted to thumb their nose at you.

    We really appreciate your willingness to work with us on this issue. I've alerted the developers so they can review your comments as well. I promise we will be in touch once we formulate a game plan. It's just a tough nut to crack with this particular issue.

  • khadkhad Social Choreographer

    Team Member

    @fseesink,

    Thanks for your patience on this. I had a chance to speak to one of the developers to confirm a few things.

    As you know, we've heard reports of this happening to some folks — it even happened to me one time — but we haven't been able to reproduce it. We'd like to create a sample app that mimics what our scanner does such that we can get more information, but our developers haven't found the time to do that so far.

    I also wanted to clarify that library we use (ZXingObjC) is not a black box in the sense of it being closed source. We have the full source code, so we can look at it and know that it's not taking all of the QR codes that we feed it and uploading it to some server. It's a black box in the sense that the problem domain of computer vision is a bit outside our field of expertise. It would not be impossible to delve more deeply into the problem in order to try to solve it ourselves, but becoming that familiar with the way computers "see" things may require even more time than it would take to build a sample app to help diagnose the problem.

    In the meantime, you will need to input the information manually. I'm truly sorry I don't have a better answer just yet but will alert you the moment we have more information, a sample app for you to test, or any additional questions that may help us narrow down the issue.

  • brentybrenty

    Team Member

    @fseesink: Indeed, I've been exploring this myself, especially since I know if the QR scanner was failing for me with QuickLook I'd notice right away...and it'd drive me nuts! I'll continue to investigate this, but as you suggest, it's difficult to know where to look.

    Regarding the "black box", all 1Password is doing is opening a window which looks at the part of the screen under it for a QR code so it can scan it and populate the information. So there just isn't a lot going on there; it either sees a QR code or it doesn't. So it seems to me that what's happening is something is preventing the scanner from seeing the screen, so that while you can clearly see the QR code, it can't, and therefore nothing happens.

    I know you've checked your setup rather exhaustively, but I wonder if there may be remnants of a long-forgotten app that have been carried along through upgrades over time...or perhaps something from a previous version of OS X itself, if only QuickLook exhibits this problem. :unamused:

  • fseesinkfseesink Junior Member

    @brenty Honestly, regarding any remnants, that'd be more likely with the iMac than the MBP. I got the MBP near end of 2014, so it came with 10.10. I always do clean builds when I get new machines, so would've started with 10.10.x and upgraded from there. The iMac, on the other hand, I've had for over 3 years now, so it must've come with 10.8.x. So the iMac would be the unit I'd have expected trouble with before the MBP if it was an issue of "cruft".

    And to be clear, as I wrote, I open the emergency kit PDF in Preview, so not just QuickLook. And still the QR scanner doesn't read.

    But you did write something that made me wonder when you said "it sees a QR code or it doesn't." What systems have folks had issues with? In my case, it was a MBP w/ Retina. It's a higher res screen than the iMac in terms of PPI... much higher in fact. Any chance the issues you're seeing are with folks with higher res screens?

    For humans one would think a higher PPI screen would be easier to spot info in, but what if the QR scanner has issues for some reason? I dunno, just grasping at this point.

    Anyway, I don't have a problem manually typing info in. Just wanted you folks aware, and clearly I'm not alone in this. Hopefully you can find the root cause.

    @khad And to be clear, when I voiced my concern, my issue isn't with a possible rude message buried in a QR code or anything. My concern was more with how there have been cases of an app relying on underlying tech in OS X (e.g., the QuickTime plugins) where if certain 3rd party plugins were installed, they adversely affected other apps in unexpected ways. Since some things are loaded dynamically on execution, such tactics have been used to "inject" unintended functionality. Very much like how many apps in older versions of OS X used kexts or various memory tricks to do things like dynamically modify the menubar (things which slowly but surely are being killed off as Apple tries to sandbox things and implement various security measures).

    But your comment about "Everything is self-contained within the 1Password app" would make me believe 1Password doesn't inadvertently rely/tap into any external code, so that's good. And you mention the use of the ZXingObjC library ( https://github.com/TheLevelUp/ZXingObjC ), so yeah, that's fully open source.

    By the way, a quick glance at that library makes me think that it's just an image library, meaning you feed it images for it to process. But the code to generate the QR code scan window must've been written by you folks, along with the code to have the box outline change color when a QR code is detected. So somehow you're feeding images to the library, possibly taking screen grabs and making library calls? Anyway, it takes me right back to my earlier posit of a PPI related issue. IF my assumption is close to correct, that would indicate images of different sizes/PPIs are being fed to the image library functions. Maybe there's something there that is causing the issue. Just a thought.

    The reason I say this is that I can't seem to get that QR window to "react" in any way. I move it over a PDF in Preview, or use QuickLook, or make a screen grab of the QR code, save it as a PNG, then try to drag/drop that PNG onto the QR window. Nada. This does, however, give me a thought. I'll get back to you once I test it.

  • fseesinkfseesink Junior Member

    @brenty @khad BINGO!

    Ok, I've got a data point for your devs to work with. Let me explain. When I said I did the same on my 2012 iMac and the QR scanner worked, here's what I did. On my MacBook Pro while doing various tests, at one point while I had the emergency kit PDF open in Preview, I did a simple crosshair screen grab of the QR code alone. I tried dragging/dropping that onto the QR scanner window, moving the QR scanner window over the PNG image, etc., to no avail. When I thought to test on the iMac, I copied over that PNG file, brought up 1Password, and BAM! The QR scanner "saw" it immediately, populating the team fields as expected.

    So on a hunch, I just logged into the iMac, and this time I copied over the emergency kit PDF. I opened that PDF, then did another crosshair screen grab of the QR code itself and saved it as a PNG (default behavior). I then copied that PNG back to my MBP and had 1Password try to scan it. BAM! It "saw" the QR code!

    So here's the rub. The two QR code PNGs, one generated on the 2014 MBP and the other generated on the 2012 iMac, are different. The PPI of the two systems is very different (~108PPI for the iMac, something like 227PPI for the MBP). So beyond the variance from using the crosshairs, the resolution of each image is going to be different. And apparently the ZXingObjC library is having issues with the higher res PNG.

    So one thing they may wish to do is adjust the res on any images they try to feed the library, whether that means resampling the images or whatnot. (I'm only guessing at the code here, but you hopefully get my point.)

    Anyway, thought you might like to know. Hopefully that info will come in handy.

  • khadkhad Social Choreographer

    Team Member

    @fseesink, I think that may prove to be incredibly helpful indeed. Thank you!

    We're maybe passing the "wrong" image to the QR code scanning library. As you mentioned, effectively we're taking screenshots of what's behind the QR scanning window, and sending that image to the library. There's a bunch of math to get coordinates and the rectangle of the window. It's entirely possible that the math is wrong, and we're actually sending something different. That math gets fun with things like retina vs non-retina, external displays, placement of displays, etc. :)

    I've passed this along to the devs. :+1:

  • brentybrenty

    Team Member

    @fseesink: Thanks so much for following up!

    Honestly, regarding any remnants, that'd be more likely with the iMac than the MBP. I got the MBP near end of 2014, so it came with 10.10.

    I was afraid you'd say that. :lol:

    And to be clear, as I wrote, I open the emergency kit PDF in Preview, so not just QuickLook. And still the QR scanner doesn't read.

    My mistake. I was discussing this with thightower earlier and I confused his case with yours. :dizzy:

    But you did write something that made me wonder when you said "it sees a QR code or it doesn't." What systems have folks had issues with? In my case, it was a MBP w/ Retina. It's a higher res screen than the iMac in terms of PPI... much higher in fact. Any chance the issues you're seeing are with folks with higher res screens?

    Dang it. So, first, I really appreciate you testing this and sharing our results. But as I mention earlier I'm on a retina MacBook Pro too, so I'm afraid it won't be as simple as that. Disappointing, because it was a great observation!

    But I think khad might be onto something, which would incorporate your idea as well. I'm running the native retina ("default for display") resolution myself, but I do vaguely recall having an issue in the distant past (maybe on my previous 15" retina MacBook Pro — 2013, I think) where I'd be trying to interact with something on the screen but it reacted as if I was doing something at completely different coordinates. I can't for the life of me recall the specifics, but maybe it'll come back to me.

    Maybe 1Password is getting coordinates based on the actual 2880x1800 resolution when the OS is treating it as 1440x900, or vice versa...

  • fseesinkfseesink Junior Member

    @brenty Funny you should mention that. Just this past week I had exactly that happen, when I went to edit a 1Password entry with the main window up, but when I clicked on the field to change something, the text for that field showed up about 3-4" to the left as if it were hanging in space. I cancelled and tried a second time and it did it again. Can't remember if I quit and fired up the app again or not, but remember in the end I just typed carefully, hit enter, and then later quit the app. Went back, and the data was there. And it's been working fine since. Only time I've ever seen that happen.

    I THINK I was on my iMac at the time, but to be perfectly honest, I just remember it happening. I don't have a solid memory which machine I was at. (I move back/forth between machines a good bit.)

  • fseesinkfseesink Junior Member
    edited April 2016

    @brenty But as I think about it, while that may be one cause for the QR scanner not working (i.e., you're doing some kind of screen grab behind the scenes, but the portion of screen you're feeding the image library is different than what's physically showing on the screen, due to some kind of mismatched coordinates), this wouldn't explain why the MBP copy of 1Password read the screen grab I took on the iMac. Clearly 1Password grabbed the right portion of the screen to feed the image library, as it recognized the lower res PNG from the iMac, when it never did recognize the higher res PNG from the MBP.

    And thinking about it, I had copied the higher res PNG that I generated on the MBP over to the iMac, which the iMac 1Password DID recognize. So I'm guessing the way the s/w works is you figure out where the QR code window is on the screen, get its coordinates, then perform a screen grab of that section of the screen. On the iMac, this would result in a downsampling of the QR code itself, because while the PNG was generated on a 227PPI screen, it was being displayed on a 108PPI screen. Do a screen grab, and you've downsampled that to a 108PPI PNG in essence.

    Now when I MADE the lower res 108PPI PNG of the QR code on the iMac and then transferred it back to the MBP, the MBP 1Password "saw" it with no issue. Again, here we have a 108PPI PNG being displayed on a 227PPI screen. Do a screen grab, and you now have a 227PPI PNG of what is just a 108PPI PNG... so again, just a 108PPI PNG. Since QR codes are all about little square dots of varying sizes, my money is still on the the ZXingObjC library having some kind of issue with higher res images being fed to it. Whether it's a particular PPI, anything above a particular PPI, or whatever, beats the heck out of me. But if anyone else has this experience, while it's happening, try to get them to downsample the QR code image and then feed that to the QR scanner.

    Now that it worked for you and you have a MBP, too, makes it odd. And I have my MBP set to the default res for the display as well. (Again, quite vanilla setup.) So why did it consistently not work for me, but it did work for you? Possibly it was the specific QR code in question. Could be the library has a bug somewhere that only applies to certain size dots within a QR code, or depending on whether certain dots are on an edge, in the center, whatnot.

    Or... maybe it has to do with color. I just brought up my two PNGs, and I notice that, beyond the res, the background color is different. The MBP PNG has a blue-ish background whereas the iMac PNG has a white one. Looking at the inspector, I also notice these differences:

    MBP PNG
    File Size: 86KB
    Image size: 474 x 468 pixels
    Image DPI: 144 pixels/inch
    Color model: RGB
    ColorSync profile: Color LCD

    iMac PNG
    File Size: 31KB
    Image size: 259 x 266 pixels
    Image DPI: 72 pixels/inch
    Color model: RGB
    ColorSync profile: iMac

    Anyway, hopefully something in all this will be of use.

  • khadkhad Social Choreographer

    Team Member

    Thanks for sharing these additional details! We haven't cracked the code yet, but perhaps with some additional details from other users as well we can narrow it down. The more data points the better for these kinds of issues. :)

  • rudyrudy

    Team Member
    edited April 2016

    @fseesink,

    I'm taking a look at this issue and have built a test app to help up better diagnose issues with the QR code reader. do you have multiple displays connected to the machine that it fails on? and if so, could you send me a snapshot of the Monitors prefpane's arrangement tab?

    While I only started here recently, apparently some code I had written years ago was used for the screen rect logic. But this seems to give me the right result on both retina and non-retina displays.

    Another request, if you have time, are you able to create a second throw-away account and replicate the failure? If it does replicate, could you send me a copy of the QR code that fails?

    Rudy

  • fseesinkfseesink Junior Member

    @rudy,

    Sorry for delay in replying. As for this issue, had to scroll back to remember, but no, no multiple displays. This is simply my 15" MBP.

    As for creating a second throw-away account, do you mean here on my MBP creating a local account to try this on? I can do that. Just need to find some time.

  • rudyrudy

    Team Member

    Hi @feesink,

    nah, a Teams account. I was curious if it was something to do with your computer itself or the QR code that was generated. I had started looking into why some of the QR codes fail to be recognized for some users and concluded that it might be related to zoom scale of the content being scanned. For some QR codes that failed to recognize at 100% in the PDF, they would succeed when at 108%. Which lead me to think that one possible reason things "just work" when doing such things via the iPhone camera is that typically you're doing the same zoom-type operation when trying to get it to recognize the code. you're moving the phone forwards/backwards/shifting to get it to recognize.

    With the mac window overlay scanning its not doing that zoom at all, but the engine itself might be assuming that that's happening .

    Preview.app doesn't seem to have that level of fine grained zoom control, so i ended up trying a failing QR in Acrobat Reader where i could actually set a zoom scale value manually. So certainly something to try to see if that makes a difference for you.

    Rudy

  • fseesinkfseesink Junior Member

    Well, for what it's worth, on my MBP I brought up 1Password, went to Preferences... | Teams, clicked [+], selected QR code, and brought up the Emergency kit PDF as before. With QR window positioned over the QR code, it didn't detect it, same as before. Then I clicked the Zoom Out ('-') button on the toolbar. Still no go. But when I clicked it a second time (so zoomed out 2x), bingo! QR code recognized.

    So it does appear that the QR scanning feature has issues depending on the size and/or resolution of the QR code.

  • brentybrenty

    Team Member

    @fseesink: Thanks for confirming! Rudy will be glad to know too. It sounds like we're on the right track. :)

  • Thanks, I had the same issue, and the problem was that the size of the code was bigger than the scanner code reader square. Simply resizing the pdf window and it works.

  • brentybrenty

    Team Member

    Ah, that makes sense! Glad that worked for you. I think I haven't run into that particular issue because I just use the QR code in the web interface (or the app), which is more reasonably sized. :lol::+1:

  • Just experienced the same problem. Tested with both the emergency kit PDF (opened in Preview and Quicklook) and the Get the Apps page in Chrome, on a freshly installed Macbook Air running macOS Sierra.

    Eventually I got it working like this:
    Choose "Enter your account details manually" > return to previous screen > Choose "Scan your account details", and drag the window over the QR code on the emergency kit (Preview and Quicklook work both fine, however in Quicklook I have to zoom in a little). Choosing the manual way first seems to be crucial here.

    This workflow doesn't work though with the QR code on the Get the Apps page, no matter what I tried.

    After comparing the text encoded within the QR codes, it noticed the working code has url encoding applied. Could it be that this difference causes one code to work and the other not? Perhaps also worth mentioning that my email address contains a "+" character.

    Hoping for a permanent solution here since we're about the roll out to the entire organization and we can expect additional load on our support team if this issue randomly pops up.

    Thx

This discussion has been closed.