I created a function that fetches some data from the Appwrite database. When I alone test my website, it works nice and smoothly, very fast too. But whenever my friend I visit the website at the same time, it gets stuck either on my side or his, and after 15 seconds it results in an error.
An internal curl error has occurred within the executor! Error Msg: Operation timed out
The Appwrite instance is running on a DigitalOcean droplet.
How do I solve this issue? Thanks.
This is super weird.
I've had concurrent users on a self-hosted instance and even on cloud. Never had an issue with a function not executing π€
Could you share the code of your function?
Yeah I find it very weird too! But it's happening constantly, if there are two users the website is becoming unusable. This could be a problem with DigitalOcean too? I don't know.
Sure. Something like this:
const comment = JSON.parse(req.payload);
const commentDoc = {
questionId: comment.questionId,
body: comment.body,
by: req.variables["APPWRITE_FUNCTION_USER_ID"],
};
const response = await database.createDocument(
"643d4f079b55031ba6b6",
"646b45b9e454f1b4d1c4",
sdk.ID.unique(),
commentDoc,
[
// permissions
]
);
// Updating Question's Comment Count
const question = await database.getDocument(
"643d4f079b55031ba6b6",
"643d4f2cd70649dd9083",
comment.questionId
);
await database.updateDocument(
"643d4f079b55031ba6b6",
"643d4f2cd70649dd9083",
comment.questionId,
{ commentCount: question.commentCount + 1 }
);
// Creating Notification
if (question.askerId !== req.variables["APPWRITE_FUNCTION_USER_ID"]) {
const notification = {
for: question.askerId,
message: `${comment.by.name} has commented on your question.`,
read: false,
payload: question.$id,
type: "comment",
};
await database.createDocument(
"643d4f079b55031ba6b6",
"648f59f58faa3642c794",
sdk.ID.unique(),
notification,
[
// permissions
]
);
await database.updateDocument(
"643d4f079b55031ba6b6",
"643dbd7c35b3663184f3",
question.askerId,
{ newNotifications: true }
)
}
But, do note that this isn't the only function that fails. Smaller functions fail too.
is this code enclosed in a try-catch
?
in that case, are all these functions enclosed in a try-catch
?
Nope, it isn't. Would it help?
Worth a try!
- In the
catch
block, look for anAppwriteException
. - Increase the function timeout to 5 minutes so it keep running and you will be able to see any errors that may occur.
Also, make sure to call res.json
in the catch block before the return
statement.
Okay trying both now! I shall let you know.
catch (AppwriteException e) {
res.json({
'message': e.message,
'status': 'failed'
});
}
an example ^
Recommended threads
- How to Avoid Double Requests in function...
I'm currently using Appwrite's `functions.createExecution` in my project. I want to avoid double requests when multiple actions (like searching or pagination) a...
- Project in AppWrite Cloud doesn't allow ...
I have a collection where the data can't be opened. When I check the functions, there are three instances of a function still running that can't be deleted. The...
- Get team fail in appwrite function
I try to get team of a user inside appwrite function, but i get this error: `AppwriteException: User (role: guests) missing scope (teams.read)` If i try on cl...