Categories
Technology

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

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

… 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.

7 replies on “Fixing Microsoft Lync 2011 “image not found” crash on Mac OS X”

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…

“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.

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 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.

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