Backendless Version (3.x / 6.x, Online / Managed / Pro )
Online
Client SDK (REST / Android / Objective-C / Swift / JS )
Cloud Code/JS
Application ID
AE4235E1-DBB7-C6F0-FF4A-E0378B0B2B00
Expected Behavior
Please describe the expected behavior of the issue, starting from the first action.
- Can run the function without issues
-
-
Actual Behavior
- Running custom function produces the error below
-
-
13:6:21.383 | SERVER_CODE | ERROR | [278314] Error: The specified resource was not found at checkStatus (/usr/local/lib/node_modules/backendless-coderunner/node_modules/backendless-request/lib/request.js:345:9) at processTicksAndRejections (internal/process/task_queues.js:95:5)
Reproducible Test Case
See our sendEmails timer.
For some additional context, I believe this error is being thrown in a custom codeless function with some custom JS code in it that uses the aws-sdk. We havent worked on this function a month or so, and it definitely worked before - we haven’t changed anything and now it throws this error.
The deployment model the sendEmails
timer is in was redeployed as early as today:
Please create a minimal reproducible example that demonstrates the issue and we will be happy to look into it.
Regards,
Mark
Yes, I redeployed it today in an attempt to debug it and add logging statements. It’s still throwing the same error though as seen in the logs.
Edit: For additional context, I believe (but can’t tell for sure) this error is being thrown somewhere in our awsSESv2SendEmail custom function. Here is the custom code we use to make API calls to SES:
const AWS = require('aws-sdk');
AWS.config.update({
region: awsRegion,
credentials: new AWS.Credentials(awsAccessKeyId, awsSecretAccessKey)
});
const sesv2 = new AWS.SESV2();
const emailParams = {
FromEmailAddress: fromEmailAddress,
Destination: {
ToAddresses: toAddresses,
BccAddresses: bccAddresses,
CcAddresses: ccAddresses
},
Content: {
Simple: {
Subject: {
Data: subject,
},
Body: {
Html: {
Data: htmlBody,
}
}
}
},
ReplyToAddresses: replyToAddresses
};
function sendEmailPromise(params) {
return new Promise((resolve, reject) => {
sesv2.sendEmail(params, (err, data) => {
if (err) {
reject(err);
} else {
resolve(data);
}
});
});
}
return sendEmailPromise(emailParams);
Ok…so apparently this was due to trying to read a non existent file elsewhere using the file API codeless blocks, I just couldn’t tell from the error message.