On the included Thing52 example, the LED fires m_ioext_osc_status_change from an interrupt. Eventually, when it comes to requesting use of the TWI this comparison happens in twi_manager.c:
uint8_t current_context = current_int_priority_get();
if (current_context < s_context_limit){
...
Where s_context_limit is = APP_IRQ_PRIORITY_HIGHEST
It seems like as the current example code stands, even when executing in a timer context, current_int_priority_get() returns 15. When running SDK14 it returns a 7 (as expected as far as I can tell) causes this to return false and thus asserts.
I'm obviously missing the magic piece here or maybe there were some changes in the SDK to make current_int_priority_get() return a different value despite being exactly the same between SDK13 and SDK14.
Any help here would be greatly appreciated!