If using environments, a nested key value won't return if not defined for the specified environment.
Example
{
"myData": { "myValue": "value" },
"development": { "myData": { "myValue": "otherValue" } }
}
The above example will return correctly "myData.myValue" if the environment is "development", but will return null if the environment is production.
The problem is a missing else for the if statement on line 272
if (this.environmentExists())