Delete column doesn’t update schema

When I delete a column in the Dashboard and then recreate it as a different type, my app throws a ‘schema mismatch’ error. Anyone else seeing this?

To test/recreate:
Using parse server: 5.2.0
Using parse dash: 4.1.0

  1. Create and Delete a column named “test” that is of type object
  2. Create a new column named “test” of type string.

Try and send a string value to it outside of the dashboard with your app.

Is this a bug or am I doing something wrong? I swear I used to do this all the time! I’m asking here before I post an issue on GitHub in the hopes I am doing something wrong.

It might be related to the changes were done in Parse Server 5 regarding schema update. What happens if you try to add the string data using the dashboard?

This is working in the dashboard. If I have a column named test of type object and then delete it, recreate it, and make one of the same name of type String it all works in the dashboard. I can add/edit values.

If I try to use the web app to submit the call, it does not work and I get the error:

error: schema mismatch for Milestones.type; expected Object but got String 
{"code":111,"stack":"Error: schema mismatch for Milestones.type; expected Object but got String\n    at SchemaController.enforceFieldExists ...

Should I put in a bug report on the Parse-Dashboard on on Parse-Server?

Actually you first need to understand why it is working via dashboard and not via api (since dashboard also uses the api). Can you share more details about your deployment? Do you have multiple instances of Parse Server running? May dashboard be connecting to an instance different from the one that your app is connecting to?

Thanks for the quick response!

Yes, I have a server that runs my dashboard that is not on the same server. It connects directly to the Parse Server that is hosted on Heroku. The Dash is also hosted on Heroku but on a separate app instance.

The main server: my-parse-app is running on Heroku with MonogoDB Atlas. The main app is a react app that connects to the server via NodeJS and is working correctly except in this instance.

I just ran through my tests again and found something new.

  1. If you create an object column named test
  2. Delete that column and recreate it as a String
  3. —> Does not work with react app api calls to create a new object
  4. Add a string value to the new dashboard column
  5. —> The react app now works

It looks like the schema updates when the value updates. I thought this wasn’t working but I think the server was down when I tested this the last time.

Thanks,

David

Could you share your parse server options? Both Parse Server instances have the same options, right?