Putting this out because this is a difficult problem to troubleshoot if you don't do it right.
Let's say you have an application where you have visibility permissions in effect.
So you have Users group removed from the Everyone Organization
Now you have a Thing "Thing1" with Properties that are being logged to a ValueStream "VS1"
What do you need to make this work?
Obviously the necessary permissions to Write the values to the Thing1 and read the values from Thing1 (for UI)
But for visibility what you'll need is:
Visibility to Thing1 (makes sense)
Visibility to the Persistence Provider of the ValueStream VS1 !!!!
Nope you don't need Visibility to the ValueStream itself, but you DO need Visibility to the Persistence Provider of that ValueStream
The way the lack of this permission was showing in the Application Log was a message about trying to provide a Null value.
Thanks a lot for your GREAT article!
I have been struggling with this problem for a couple of days already!
In my case, the application log showed error messages that didn't really help, such as:
ERROR [context: com.thingworx.webservices.context.HttpExecutionContext@6e1e680a]
ERROR Error sending response: java.lang.NullPointerException
The server kept returning HTTP 500 (internal server error) for every attempt to change a logged property via REST.
This behaviour is a bug. The error message should describe the real problem (i.e. the lack of visibility permissions to access the persistence provider).
I am logged in as administrator, but I have no permission to change the visibility of the persistence provider.
Where is the problem?