ZiaChoudharyOriginal post
Rank 2: Process
Hey Appwrite community 👋,
I’m working on a Python function to decrease user credits, but I keep running into an error when calling the update_document method. Here's the error I’m getting:
[ERROR] Error processing request: Error decreasing user credits: The document data and permissions are missing. You must provide either document data or permissions to be updated.
Here’s a snippet of the code I’m using:
Plain text
try: document = self.database.get_document( database_id=self.db_id, collection_id=collection_id, document_id=document_id ) logger.info(f"User credits: {document['credits']}") free_credits = document['credits'] - 1 logger.info(f"Decreasing user credits to: {free_credits}") data = {'credits': free_credits} self.database.update_document( database_id=self.db_id, collection_id=collection_id, document_id=document_id, data=data, permissions=[ Permission.read(Role.user(document_id)) ] ) except Exception as e: raise Exception(f"Error decreasing user credits: {str(e)}")```
What I’ve Tried:1. Ensured that data is a dictionary with the credits field.2. Attempted to pass permissions correctly.3. Printed and verified the data and permissions before calling update_documentDespite these efforts, the error persists. 🥲Summary
Developers facing an issue with updating a document in Appwrite; receiving a "Document Data and Permissions Missing" error when calling the update_document method. They've ensured data is a dictionary and attempted to pass permissions correctly, with no success.
**Solution**: The error is related to incorrectly formatting the permissions parameter. Instead of passing it as a list with square brackets, it should be constructed using the `add_permissions` method. Update the permissions assignment as follows:
Replace:
```python
permissions=[
Permission.read(Role.user(document_id))
]
```
With:
```python
permissions=Permissions().add_permission(
Permission.read