With CMSIS-RTOS2, when using 'osMutexNew()' with 'osMuteRobus', it will return 'NULL'. Try the code below, and you'll repeat the failure:
static const osMutexAttr_t at = {NULL, osMutexPrioInherit | osMutexRecursive | osMutexRobust, NULL, NULL};
osMutexId_t id;
id = osMutexNew(&at);
if (id == NULL)
{
printf("Failed to create a mutex\n");
}
The similar code is used in Lwip 2.1.2, 'sys_arch.c', function: 'sys_mutex_new()'