Dec 19

On the 12th December, Microsoft released update 14.0.7 to Lync for Mac. Unfortunately, after installing, launching Lync now results in this:

Lync 2011 Crash Report

… which, after close scrutiny, is due to Microsoft having failed to fully QA the new release by omitting to test it at all on any Mac with a case-sensitive filesystem: The new update is linked against ‘USBHidWrapper.framework’, whilst the framework is actually named ‘USBHIDWrapper.framework’.

Very unhelpfully, Microsoft also remove all previous downloads for a given product when a new update is released, so it’s not possible to revert to the (working) 14.0.6 release.

Very disappointing. Especially since this update has been live for seven days now, and no revision has appears to be forthcoming.

Until they get their QA department in order, though, here is a fix:

cd /Applications/Microsoft\ Lync.app/Contents/Frameworks \
    && ln -s USBHIDWrapper.framework USBHidWrapper.framework

… which is the minimally-invasive fix for the issue, and doesn’t seem to cause any app-signing issues.

6 Responses to “Fixing Microsoft Lync 2011 “image not found” crash on Mac OS X”

  1. Stuart Says:

    Since coming back from Christmas Holidays, Lynx is now refusing to start. Initially, it would launch and then abort before opening a window. Sometimes this would be accompanied by Microsoft Error Reporting appearing but being marked “Application Not Responding”.

    Today, Microsoft Error Reporting (but not the Apple Crash Reporter, as was occurring before) started to work, and reports:

    Microsoft Error Reporting log version: 2.0

    Error Signature:
    Exception: EXC_BAD_ACCESS
    Date/Time: 2014-01-09 11:26:38 +0000
    Application Name: Microsoft Lync
    Application Bundle ID: com.microsoft.Lync
    Application Signature: UCCP
    Application Version: 14.0.7.131205
    Crashed Module Name: CoreFoundation
    Crashed Module Version: 855.11
    Crashed Module Offset: 0x00012412
    Blame Module Name: Microsoft Lync
    Blame Module Version: 14.0.7.131205
    Blame Module Offset: 0x00f02d02
    Application LCID: 1033
    Extra app info: Reg=English Loc=0x0409
    Crashed thread: 0


    Thread 0 crashed:

    #  1  0x93dba412 in _CFStringGetLength + 0x00000012 (CoreFoundation + 0x00012412)
    #  2  0x00f7ad02 in  + 0x00A13F08 (Microsoft Lync + 0x00f02d02)
    #  3  0x00f7b09c in  + 0x00A142A2 (Microsoft Lync + 0x00f0309c)
    #  4  0x93e0b519 in ___CFSetApplyFunction_block_invoke + 0x00000019 (CoreFoundation + 0x00063519)
    #  5  0x93dedb4a in _CFBasicHashApply + 0x0000007A (CoreFoundation + 0x00045b4a)
    #  6  0x93e0b4d3 in _CFSetApplyFunction + 0x00000093 (CoreFoundation + 0x000634d3)
    #  7  0x00f7a5fa in  + 0x00A13800 (Microsoft Lync + 0x00f025fa)
    #  8  0x00f7a95c in  + 0x00A13B62 (Microsoft Lync + 0x00f0295c)
    #  9  0x00eaa078 in  + 0x0094327E (Microsoft Lync + 0x00e32078)
    # 10  0x00eaf446 in  + 0x0094864C (Microsoft Lync + 0x00e37446)
    # 11  0x00ef0952 in  + 0x00989B58 (Microsoft Lync + 0x00e78952)
    # 12  0x00ef12a4 in  + 0x0098A4AA (Microsoft Lync + 0x00e792a4)
    # 13  0x00ef1bc0 in  + 0x0098ADC6 (Microsoft Lync + 0x00e79bc0)
    # 14  0x01668152 in  + 0x01101358 (Microsoft Lync + 0x015f0152)
    # 15  0x0101ad1b in  + 0x00AB3F21 (Microsoft Lync + 0x00fa2d1b)
    # 16  0x0101c46c in  + 0x00AB5672 (Microsoft Lync + 0x00fa446c)
    # 17  0x0101c601 in  + 0x00AB5807 (Microsoft Lync + 0x00fa4601)
    # 18  0x0101c795 in  + 0x00AB599B (Microsoft Lync + 0x00fa4795)
    # 19  0x0167e617 in  + 0x0111781D (Microsoft Lync + 0x01606617)
    # 20  0x02039cf5 in  + 0x01AD2EFB (Microsoft Lync + 0x01fc1cf5)
    # 21  0x02043595 in  + 0x01ADC79B (Microsoft Lync + 0x01fcb595)
    # 22  0x01ffa517 in  + 0x01A9371D (Microsoft Lync + 0x01f82517)
    # 23  0x01fffb23 in  + 0x01A98D29 (Microsoft Lync + 0x01f87b23)
    # 24  0x020064ad in  + 0x01A9F6B3 (Microsoft Lync + 0x01f8e4ad)
    # 25  0x01fee130 in  + 0x01A87336 (Microsoft Lync + 0x01f76130)
    # 26  0x9b493692 in ___57-[NSNotificationCenter addObserver:selector:name:object:]_block_invoke + 0x00000031 (Foundation + 0x00014692)
    # 27  0x93ed67e4 in ___CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 0x00000014 (CoreFoundation + 0x0012e7e4)
    # 28  0x93db83fb in __CFXNotificationPost + 0x00000D6B (CoreFoundation + 0x000103fb)
    # 29  0x9b481ebf in -[NSNotificationCenter postNotificationName:object:userInfo:] + 0x0000005C (Foundation + 0x00002ebf)
    # 30  0x950737d5 in -[NSApplication _postDidFinishNotification] + 0x0000016F (AppKit + 0x0002f7d5)
    # 31  0x95073475 in -[NSApplication _sendFinishLaunchingNotification] + 0x000000EF (AppKit + 0x0002f475)
    # 32  0x9506fda4 in -[NSApplication(NSAppleEventHandling) _handleAEOpenEvent:] + 0x00000348 (AppKit + 0x0002bda4)
    # 33  0x9506f691 in -[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] + 0x00000115 (AppKit + 0x0002b691)
    # 34  0x95d30304 in -[NSObject performSelector:withObject:withObject:] + 0x0000004D (libobjc.A.dylib + 0x0001a304)
    # 35  0x9b4a23fa in ___76-[NSAppleEventManager setEventHandler:andSelector:forEventClass:andEventID:]_block_invoke + 0x00000079 (Foundation + 0x000233fa)
    # 36  0x9b4a1f31 in -[NSAppleEventManager dispatchRawAppleEvent:withRawReply:handlerRefCon:] + 0x000001AE (Foundation + 0x00022f31)
    # 37  0x9b4a1d3b in __NSAppleEventManagerGenericHandler + 0x000000DA (Foundation + 0x00022d3b)
    # 38  0x99856b15 in aeDispatchAppleEvent(AEDesc const*, AEDesc*, unsigned long, unsigned char*) + 0x00000183 (AE + 0x0003bb15)
    # 39  0x99825ed6 in dispatchEventAndSendReply(AEDesc const*, AEDesc*) + 0x0000002C (AE + 0x0000aed6)
    # 40  0x99825dce in _aeProcessAppleEvent + 0x0000013E (AE + 0x0000adce)
    # 41  0x9a4327c1 in _AEProcessAppleEvent + 0x00000037 (HIToolbox + 0x000397c1)
    # 42  0x9506b3a8 in __DPSNextEvent + 0x00000441 (AppKit + 0x000273a8)
    # 43  0x9506aad0 in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 0x00000077 (AppKit + 0x00026ad0)
    # 44  0x9505d35c in -[NSApplication run] + 0x000002D7 (AppKit + 0x0001935c)
    # 45  0x950461f8 in _NSApplicationMain + 0x0000048D (AppKit + 0x000021f8)
    # 46  0x003457ab in operator delete(void*, void*) + 0x00288FAB (Microsoft Lync + 0x002cd7ab)
    # 47  0x0034574a in operator delete(void*, void*) + 0x00288F4A (Microsoft Lync + 0x002cd74a)

    X86 Thread State:
     eax: 0x00000000  ebx: 0x00f7ac07  ecx: 0xbff874dc  edx:0x94c9cf7a
     edi: 0x93dba40e  esi: 0x00000000  ebp: 0xbff874e8  esp:0xbff874d0
      ss: 0x00000023  eip: 0x93dba412   cs: 0x0000001b   ds:0x00000023
      es: 0x00000023   fs: 0x00000000   gs: 0x0000000f  eflags:0x00010282

    <...>

    Microsoft Application Information:
    Time from launch: 0 hours, 0 minutes, 3 seconds
    Total errors on this client: 16

    … and this is running exactly the same version which was fine (with the above fix) before Christmas. I wonder whether there’s been a change on the Lync server which the client isn’t accounting for…

  2. D Zurn Says:

    “Frameorks” should be “Frameworks”.

    cd /Applications/Microsoft\ Lync.app/Contents/Frameworks \
    && ln -s USBHIDWrapper.framework USBHidWrapper.framework

    But it still didn’t affect the Lync crash I’ve been having.

  3. Stuart Says:

    Thanks – fixed.

    As above I found that, with the above work-around (which Microsoft *still* haven’t fixed the need for) Lync worked on my Mac from December until Christmas. Returning in the new year, Lync instead crashed on launch – but with, instead of an Apple crash dialog, a Microsoft Crash Reporter window. This continued for about two weeks, when – with no change from my end – Lync would again connect. However, my messages weren’t delivered until recipients unless they’d first sent me a message, my typing status wasn’t visible to others, and only about half the messages I sent were received when then. After three days, this fixed itself (without even restarting Lync) and it worked properly again.

    It is notable that – before, during, and after this whole period – Pidgin with the SIPE plugin was signed-in to the same account and never missed a beat.

    My conclusion? Microsoft’s Lync Server software for Windows is as badly conceived as their Lync Client software for Mac OS :(

  4. Stuart Says:

    Aaaaaand… it’s broken again :(

    I reboot in the middle of last week has resulted in the Microsoft Crash Reporter when launching Lync ever since.

    For a enterprise-targeted piece of paid-for commercial software, this is entirely unacceptable.

  5. Stuart Says:

    4 months after release, this problem is still not fixed – Lync on Mac OS with a case-sensitive filesystem is essentially non-functional, and even with the fix above it appears that Lync will only actually work one reboot in three. Quite what changes over reboots I have no idea – but this does appear to be relatively consistent.

    I’ve been using Pidgin which, unlike Microsoft’s product, is able to connect to Microsoft’s Lync servers reliably. Unfortunately, work has not transitioned to a heavy reliance of Lync Phone for conferences and calls, and I’m not aware of anything else compatible with this.

  6. Stuart Says:

    Today I got a notification that Lync 14.0.8 has been released (although the About window still says “©2010 Microsoft Corporation”…) – and this still has the USB framework case bug.

    Having fixed this again, Lync started. Whether this is repeatable remains to be seen…

Leave a Reply

%d bloggers like this: