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
- Backup does not restore
I need to urgently restore a backup but nothing is happening when trying to restore!
- Urgent help with removed databases
Hi <@564158268319203348> <@501784879638249472> I wrote to paid plan support about this but no response as of yet… About an hour ago one of the interns from o...
- proccessing problems
A database schema operation is stuck in my Frankfurt project. In the matryq database, the workspaceId attribute of the coaching_activity_entries collection rema...