Client and server versioning in Mobile Apps and Mobile Services

The latest version of Azure Mobile Services is the Mobile Apps feature of Azure App Service.

The Mobile Apps client and server SDKs are originally based on those in Mobile Services, but they are not compatible with each other. That is, you must use a Mobile Apps client SDK with a Mobile Apps server SDK and similarly for Mobile Services. This contract is enforced through a special header value used by the client and server SDKs, ZUMO-API-VERSION.

Note: whenever this document refers to a Mobile Services backend, it does not necessarily need to be hosted on Mobile Services. It is now possible to migrate a mobile service to run on App Service without any code changes, but the service would still be using Mobile Services SDK versions.

Header specification

The key ZUMO-API-VERSION may be specified in either the HTTP header or the query string. The value is a version string in the form x.y.z.

For example:

GET https://service.azurewebsites.net/tables/TodoItem

HEADERS: ZUMO-API-VERSION: 2.0.0

POST https://service.azurewebsites.net/tables/TodoItem?ZUMO-API-VERSION=2.0.0

Opting out of version checking

You can opt out of version checking by setting a value of true for the app setting MS_SkipVersionCheck. Specify this either in your web.config or in the Application Settings section of the Azure portal.

Note

There are a number of behavior changes between Mobile Services and Mobile Apps, particularly in the areas of offline sync, authentication, and push notifications. You should only opt out of version checking after complete testing to ensure that these behavioral changes do not break your app's functionality.

Azure Mobile Apps client and server

Mobile Apps client SDKs

Version checking was introduced starting with the following versions of the client SDK for Azure Mobile Apps:

Client platform Version Version header value
Managed client (Windows, Xamarin) 2.0.0 2.0.0
iOS 3.0.0 2.0.0
Android 3.0.0 3.0.0

Mobile Apps server SDKs

Version checking is included in following server SDK versions:

Server platform SDK Accepted version header
.NET Microsoft.Azure.Mobile.Server 2.0.0
Node.js azure-mobile-apps) 2.0.0

Behavior of Mobile Apps backends

ZUMO-API-VERSION Value of MS_SkipVersionCheck Response
x.y.z or Null True 200 - OK
Null False/Not Specified 400 - Bad Request
1.x.y False/Not Specified 400 - Bad Request
2.0.0-2.x.y False/Not Specified 200 - OK
3.0.0-3.x.y False/Not Specified 400 - Bad Request