google script : IO error when deserializing continuation - javascript

I wrote a script that adds a function in a Google spreadsheet that was working well. From today, I get an error:
IO error when deserializing continuation.
This appears after a call to Ui.alert or Ui.prompt. I tried to add sleep after the calls, but it doesn’t work. This is a sample of code:
ui.alert( "ERROR. !");
Utilities.sleep(1000);
return;

I also had the same problem using a script to merge mail from spreadshhet.
I saw a post from year 2014 that explains this is a error server at Google end and ot in any coe of any script.
Next day the problem was solved by itself. It's a problem from Google...

I also saw this error for the first time today. I got the script working again by running another function that worked, when I went back and executed the problematic function it was then working again.
In another case, a user reported they were getting this error. Closing and re-opening the spreadsheet helped the affected user.
Probably a Google issue and not something directly related to your code.

Could system latency (PC + Internet) be the cause? This would explain apparent randomness, and be fixable on Google's end by increasing the timeout associated with the Browser.msgbox I/O process.

Related

ApplicationInsightsTelemetryClient not logging bot identifiers

I'm using the JavaScript version of the botframework. I've followed the documentation to enable telemetry logging in Application Insights. When I access the logs I can see that custom events are being logged.
The issue is that the bot specific identifiers, such as user_Id, session_Id and conversation_Id are not being logged. This can be seen in the screen capture below
In the applicationInsightsTelemetryClient.js file there is a function called addBotIdentifiers. As far as I can tell, it is this function that is responsible for adding the bot specific identifiers.
The first lines of the function look like this:
function addBotIdentifiers(envelope, context) {
if (context.correlationContext && context.correlationContext.activity) {
Inspecting this function shows that the context argument is always null.
This leads me to my questions.
Why is it null?
Any suggestions on what I need to do to have it set appropriately?
Update
In digging into this further it appears the code starting at line 26 in the applicationInsightsTelemetryClient.js file isn't being called. Could this be the cause of the missing context later on in the addBotIdentifiers function?
Looks like the documentation has a missing line in step 7. We will correct the document ASAP. Meanwhile, please add the below in your index.js following https://github.com/microsoft/BotBuilder-Samples/blob/main/samples/javascript_nodejs/21.corebot-app-insights/index.js#L113
// Enable the Application Insights middleware, which helps correlate all activity
// based on the incoming request.
server.use(restify.plugins.bodyParser());
Further investigation has shown what the issue was. It's not immediately obvious.
I compared the code in my index.js file with the one in the 21.corebot-app-insights BotBuilder sample.
Note that the setup of the Restify server happens after the creation of the adapter bot adapter. It is also after the configuration of the main dialog and the middleware.
In my code the setup of the Restify server and the bot adatper / dialogs was intermingled. This appears to have been the cause of the problem.
The main lesson here for me, and for anyone who stumbles across this post later, is that the setup of the Restify server should be at the end of the index.js file. To ensure all of the bot framework is setup first.

Can't call Cloud Code from JavaScript

I have a JavaScript client which connects to my local Parse server just fine. Login works, Parse.Query works, however calling any Cloud Code function with Parse.Cloud.run does not work -- instead I get the error 100/XMLHttpRequest failed. Calling CC functions from commandline using curl does work, indicating that the overall server setup is correct.
It's obviously a client configuration problem on my part, but I just can't figure out what the problem might be. Client setup is simple enough:
Parse.initialize('myappid');
Parse.serverURL = 'http://localhost:1337/parse';
Any ideas?
The problem was that my CC funtion requires a Date argument but I passed in a moment object... now I converted it to Date and all is well again. Silly me, but 100/XMLHttpRequest failed/ConnectionFailed is also a very misleading error message for this!

getting message "Make sure you have at least one recent message created." in ZAPIER

I am working on zapier, where I have created a zap with my app(Test Message) as trigger , now when I test my app as trigger while making a zap it shows "Make sure you have at least one recent Test Message created." and therefore i have to skip the test and make an action without testing my trigger.
Please tell me where i am going wrong.
thanks in advance
This means that your trigger isn't working or you didn't test it per the instructions. You need to cause your external system to perform the action that would have caused your Zap to trigger. For example, if your trigger GitHub > New Repository, you have to actually go make a new repository on GitHub, and then return to Zapier to let it test (you can delete that new repository after you're done). If you can't, it's going to be difficult or possibly impossible to move forward.
This question seems to be a duplicate of getting message “Make sure you have at least one recent message created.” in ZAPIER.

Cloud Code function running twice

I have written a cloud function that is working well.
Sometimes this function is being executed more than one time for the same user (I made sure that only one request is being requested from the client android app).
After some debugging I noticed that this problem happens if the connection is bad. I may be or may not be correct.
How to overcome such an issue?
As in the comments I also don't believe the client SDKs would duplicate a Cloud Function call on a bad connection. The expected behaviour would be for them to throw a network-related exception on the client side and not call it again. A problem would arise if the Cloud Function runs successfully and the client is only unable to get the result back.
I can think of the following solutions, with no more details about the Cloud Function itself:
Try to make the function idempotent - Meaning that even if it runs twice the end result is the same, assuming the same input/parameters.
Cache the results and manually throttle the function - This is more complicated, and is only needed if the network problem persists and you can't work around eliminating the side effects of the function. You would have to create another Class to cache the results of the function (maybe keyed by the parameters) and returning the same result with no computation and side effects.

Error catching in NodeJs

I've been working on a project, a socket server, using NodeJS, with some great help from people on this site, my project is nearing completion, but I have an error generated on my code every once in a while, and I can't seem to pin point the error down, since the error log does not give a name of a variable, function or anything related to the problem, it just throws off this message:
Exception: TypeError: Cannot read property '0' of undefined
My problem also arises from the fact that there is nothing much moving in my code unless someone is connected to it, I do have an interval that runs every 4 minutes and send an update query to my DB so the connection to the DB will stay alive (we don't want to change the mySQL server wait_timeout since we use the same DB for other projects and products that needs it that way), and a kind of a global timer also set with setInterval that execute actions being sent to it from dynamicaly created game rooms, but again, the error pops up even if simply restart the service, and leave it untouched, it will come up every 10-20 minutes or so...
So far I've been using this simple code to catch errors:
process.on('uncaughtException', function(err){
_log('Exception: ' + err+"<br>");
});
but this does not give the information I need to know how to debug and find the problem.
My question is is there another way to handle these errors in a way that will return a little more information about the nature of the problem?
Thanks!
The err argument holds more properties like err.message and err.stack.

Categories

Resources