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
catchblock, 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
- Sometimes this function shows an error l...
1. Synchronous function execution timed out. Use asynchronous execution instead, or ensure the execution duration doesn't exceed 30 seconds.\nError Code: 408 2...
- Custom Topic sent from Function (with sc...
Can I send a message on a custom topic? So clients can subscribe to them?
- Function scheduling is not functional on...
Hello everyone! I'm using Appwrite Cloud and I have a function that runs every day at 00:00 UTC. Preciously it worked fine, but it didn't fire last night and i...