Function Event wildcards caused infinite loop causing 500 Internal error
- 0
- Databases
- React Native
- Cloud
Hi guys @Support
I created a function to be triggered everytime an item is added or checked state changed in items collection it update the list collection total_items and checked_items
See code
export default async ({ req, res, log, error }) => { const key = req.headers['x-appwrite-key']; const client = new Client() .setEndpoint(process.env.APPWRITE_FUNCTION_API_ENDPOINT) .setProject(process.env.APPWRITE_FUNCTION_PROJECT_ID) .setKey(key);
const databases = new Databases(client);
// ENV variables for collection IDs const databaseId = process.env.APPWRITE_DATABASE_ID; const listsCollectionId = process.env.APPWRITE_LISTS_COLLECTION_ID; const itemsCollectionId = process.env.APPWRITE_ITEMS_COLLECTION_ID;
try { // Get all lists const listDocs = await databases.listDocuments(databaseId, listsCollectionId);
for (const list of listDocs.documents) {
const listId = list.$id;
// Fetch all items for this list
const allItems = await databases.listDocuments(databaseId, itemsCollectionId, [
Query.equal('list_id', listId)
]);
const totalItems = allItems.total;
const checkedItems = allItems.documents.filter(item => item.checked === true).length;
// Update the list document with the new counts
await databases.updateDocument(databaseId, listsCollectionId, listId, {
items_total: totalItems,
items_checked: checkedItems
});
}
return res.json({ success: true, message: 'All lists updated.' });
} catch (err) { error('Failed to update list counts: ' + err.message); return res.json({ success: false, error: err.message }); } };
I then added wildcards events that has caused infinite which has made my Appwrite Project blocked due to an excessive amount of function executions
["databases..collections..documents.*.create", ….] I can not access to my project to update the events. Can i get some help ?
@PA as mentioned on the email sent to you by the support team your function has been flagged and blocked to prevent your project from a billing bomb or excessive usage do to the recursive behavior you've implemented.
Our support team is already in contact with you and will help you understand how to prevent this and unpause your usage.
Appreciate the quick response.
I will wait for a reply from support and hope to resolve this asa from my side.
Recommended threads
- Weird permission failure
when creating an account I use following methods: ``` Future<void> register(String email, String password, String username) async { final user = await accoun...
- Appwrite Storage error 503s for automate...
I'm facing error 503s from Appwrite after about 5-6 seconds of making AI requests from my tool with images and files above 20MB (=> not inline base64 used, but ...
- Flutter Android oAuth is no more working
I currently don't get the oAuth login to work in flutter android. it works on ios and on web. but when try to use it on Android, i get to the point where the ca...