Property Name contains invalid characters

This problem just appeared.

Whenever I try to save anything via api calls from android, I get the following error
BackendlessException{ code: ‘2004’, message: ‘Property name contains invalid characters: $change’ }

This happens in any object I try to save, up to now everything was working as expected. Today this came up.
I even created a test object with one String field, called field1, and that gave me the same problem.
Please look into this issue, and let me know how to fix this.
Thank you in advance.

Hi George,

It looks like the property name is “$change”, the dollar sign character is not allowed in the property name. What does the class of the object you’re saving look like?

Regards,
Mark

public class UserLocation
{
private String objectId;
private java.util.Date updated;
private java.util.Date created;
private Boolean isPrivate;
private String ownerId;
private GeoPoint location;
public String getObjectId()
{
return objectId;
}}

I was able to save an object in your app without a problem (using the secret key you shared with me offline earlier). Object ID is B5A0F4BE-A83A-E58D-FFE0-D9CE43700C00 (see it in the UseLocation table).

Here’s my code:

   UserLocation location = new UserLocation();
    Backendless.Data.of( UserLocation.class ).save( location, new AsyncCallback<UserLocation>()
    {
      @Override
      public void handleResponse( UserLocation response )
      {
        Log.i( "object saved - " + response.getObjectId() );
      }


      @Override
      public void handleFault( BackendlessFault fault )
      {
        Log.e( "Error - " + fault.getMessage() );
      }
    } );

I had to make a minor mod in the UserLocation table (added the setObject method):

public class UserLocation
{
  private String objectId;
  private java.util.Date updated;
  private java.util.Date created;
  private Boolean isPrivate;
  private String ownerId;
  private GeoPoint location;


  public String getObjectId()
  {
    return objectId;
  }


  public void setObjectId( String objectId )
  {
    this.objectId = objectId;
  }
}

I will give it a shot and get back to you.

Regards,

George

I just tried, with the code you posted, making that change and I can not get it to work.
I re-downloaded all the classes generated by the backendless console, in the code generator part, but it does not seem to work. I will try and do a full rebuild of my project in case something is wrong in the project structure of android studio and give you an update. Thank you.

Regards,

George

I have tried pretty much everything. I created a new application with only one simple table with one field,
and I get the same error. Any ideas would be appreciated. Have you ever encountered similar problem? and if yes what was the way to solve it?
Thank you in advance.

Regards,

George

Can you zip up your project and upload to dropbox? I’ll take a look at it.

Will do. I need 10 min.

uploading now.

As it turns out, upgrading my android studio, really messed things up. I downloaded an earlier version and problem is solved. Thank you.

Regards,

George

I have the same code error 2004 while saving in loop more then one object.
{ code: ‘2004’, message: ‘Property name contains invalid characters: $change’ }
There is no error saving one object.

I found it is occurred only while async saving

Make sure to update your Android studio as the other user mentioned in this thread.

Disabling Instant Run fixed the problem for me

I have this error trying to upload a song.mp3 to FILE system using the web console, I removed spaces and strange characters but still getting the same error.

Is there slash character in the file name?

nope, nothing, I tried changing the file name to something simple as song.mp3 and the message is still there.

Thanks

I discover that I can upload the same file to the media directory but anytime I create a new directory inside media and try to upload to that directory the message pop up saying that the file contain not allowed characters.

Pablo,

Good catch, this is a indeed a problem. I will create an internal ticket to investigate and fix the problem.

Regards,
Mark