With this refactoring
https://github.com/wmathurin/SalesforceMobileSDK-Android/commit/3591c5eca88cc945f3f3d927c7d636f746594dbd

I started using optString(key, null) expecting to get null if the key was missing or was pointing to null. Turns out that JSONObject.optString returns the string "null" in the second case !!
Previously, we were doing isNull(key) ? null : getString(key)