I'm setting up a DialogFlow wrapper and I'm using the DialogFlow JavaScript SDK. But, I'm getting the following error:
Error: Request unsafe for browser client domain:
dialogflow.googleapis.com
This was working before, but I'm not sure why it suddenly stopped working.
I've tried reverting all code to a version that worked. I'm sure it's a DialogFlow error.
const intentDetectResponse = await sessionClient.detectIntent(request)
The complete error log is as follows:
{ Error: Request unsafe for browser client domain: dialogflow.googleapis.com
at Http2CallStream.call.on (/Users/NewProject/node_modules/#grpc/grpc-js/build/src/client.js:101:45)
at Http2CallStream.emit (events.js:194:15)
at process.nextTick (/Users/NewProject/node_modules/#grpc/grpc-js/build/src/call-stream.js:71:22)
at process.internalTickCallback (internal/process/next_tick.js:70:11)
code: 3,
details:
'Request unsafe for browser client domain: dialogflow.googleapis.com',
metadata:
Metadata {
options: undefined,
internalRepr: Map { 'grpc-server-stats-bin' => [Array] } } }
Pretty sure this is something wrong with dialogflow service. This is not the first time dialogflow facing some issues.
Pretty sure something is wrong with one of their servers behind the load balancer. If you try multiple times, sometimes a request can get through. But it should most definitely be a dialogflow api server issue.
It was issue from Dialogflow side, their technical team worked on it and resolved it. However they did not tell exactly what was the actual issue.
There is github issue as well for the same.
I think it's a rate limit of the Dialogflow API? I had the same error with a python script, after a few minutes it worked fine...
Says here there is a limit for 60 requests per minute.
Related
I am using a Nodejs client to integrate with Google Smart Home.
When I request to RequestSync API, it sometimes shows the following error.
Error: Internal error encountered.
Although I saw the above error, it seems that the SYNC request has been triggered properly.
Does anyone know why this happens?
Since the request failed and returned an error, our app retries the RequestSync again and again, so I'd like to fix the error if possible.
Thank you.
Environment
#googleapis/homegraph: 3.0.2
Nodejs: 18.4.0
Background
I am trying to investigate and solve problems with a containerized NodeJS web service app that communicates with Avalanche Test Network (https://api.avax-test.network/ext/bc/C/rpc) in order to Mint NFTs.
//...
provider = new HDWalletProvider({
privateKeys: [walletPrivateKey],
providerOrUrl: "https://api.avax-test.network/ext/bc/C/rpc",
pollingInterval: 4000,
});
const myContract = Contract(Contract_NFT);
myContract.setProvider(provider);
const _instance = await myContract.at(process.env.CONTRACT_NFT_ADDRESS);
_instance.mint(provider.getAddress(), mintURL, { from: provider.getAddress() })
//...
Note: I am not the developer of app.
Issue
After starting the container, first request completes successfully. However subsequent requests fail with code: -32603 message: 'ETIMEDOUT' error
at new NodeError (node:internal/errors:387:5)
at Web3ProviderEngine.emit (node:events:502:17)
at /app/node_modules/web3-provider-engine/index.js:54:14
at afterRequest (/app/node_modules/web3-provider-engine/index.js:148:21)
at /app/node_modules/web3-provider-engine/index.js:174:21
at /app/node_modules/web3-provider-engine/index.js:232:9
at /app/node_modules/async/internal/once.js:12:16
at replenish (/app/node_modules/async/internal/eachOfLimit.js:61:25)
at /app/node_modules/async/internal/eachOfLimit.js:71:9
at eachLimit (/app/node_modules/async/eachLimit.js:43:36)
at /app/node_modules/async/internal/doLimit.js:9:16
at end (/app/node_modules/web3-provider-engine/index.js:211:5)
at Request._callback (/app/node_modules/web3-provider-engine/subproviders/rpc.js:36:21)
at self.callback (/app/node_modules/request/request.js:185:22)
at Request.emit (node:events:513:28)
at Timeout.<anonymous> (/app/node_modules/request/request.js:851:16)
Error: PollingBlockTracker - encountered an error while attempting to update latest block:
undefined
at PollingBlockTracker._performSync (/app/node_modules/eth-block-tracker/src/polling.js:51:24)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
When the app is used outside a container and directly on server OS, all requests successfully complete.
What I have tried
I tried searching the internet forums and boards. Similar issue is mentioned in some posts but suggested solution is to tweak Timeout/Interval values which did not help with my issue and still got the error.
I tried using the same NodeJS and NPM versions installed on server OS. Also tried using different versions of NodeJS( 14.XX, 16.XX). Still got the same error.
Also I have tried changing and configuring Docker network( different type of network driver, different IPAM config, passing extra hosts etc.). Still got the same error.
I have confirmed that mentioned URL is accessible from inside container using ping, nc and dig tools. Also have confirmed that successful HTTPS connection is being established.
Questions
What is causing this behavior?
What I can do to reliably use this app inside container?
Have I missed something?
I am using Dialogflow ES and once I got the webhook setup, I haven't been having issues. But after a few months, I just started getting a random error. It seems to be inconsistent as in sometimes I get it for a specific web call and other times it works fine. This is from the Raw API response:
"webhookStatus": {
"code": 3,
"message": "Webhook call failed. Error: [ResourceName error] Path '' does not match template 'projects/{project_id=*}/locations/{location_id=*}/agent/environments/{environment_id=*}/users/{user_id=*}/sessions/{session_id=*}/contexts/{context_id=*}'.."
}
The webhook is in GCP Functions in the same project. I have a simple "ping" function in the same agent that calls the webhook. That works properly and pings the function, records some notes in the function log (so I know the function is being called), and returns a response fine, so I know the webhook is connected and working for other intents in the same agent before and after I get the error above.
Other intents in the same agent work (and this one WAS working), but I get this error now. I also tried recreating the intent and I get the same behavior.
The project is linked to a billing account and I have been getting charged for it, so I don't think it is an issue with being on a trial or otherwise. Though the Dialogflow itself is in "trial", but the linked webhook function is billed.
Where can I find what this error means or where to look to resolve it?
After looking at this with fresh eyes, I found out what was happening.
The issue was a mal-formed output context. I was returning the bad output context sometimes (which explained why sometimes it worked and sometimes it didn't). Specifically, I was returning the parameters directly into the output context without the output context 'name' or 'parameters'. Everything looked like it was working and I didn't get any other errors, but apparently, when Dialogflow receives a bad web response, it generates the unhelpful error above.
I am new to IOS development and I was trying to implement APNS. It was working fine until suddenly it started to give this error after sending the notifications form Node backend.
{ [GatewayMessageError: Invalid token] message: 'Invalid token', code: 8, identifier: 0 }
Any leads would be helpful.
Thanks
This is such a strange Problem. I am using apnagent in Node.js to send notifications. This error occurred to me and then it solved on its own. I am still confused as to how it is solved as i did not change anything in my code. From what I have read, this might be due to apnagent's irregularity or non performance.
I'm working on a project which uses Npm request package for making request to an API server. On getting response, the callback processes the returned response. During this response processing I get the error: Failed to receive keepalive! Exiting. The following code will help you understand.
request({url: 'http://api-link-from-where-data-is-to-be-fetched'
},
function (err,res,body) {
//The code for processing response
}
Anybody can help me please who knows how to resolve this issue?
This might help answer this for you:
https://github.com/meteor/meteor/issues/1302
The last post on that page says:
Note that this is just a behavior of the develop-mode meteor run (and any hosting environment that chooses to turn on the keepalive option, which probably isn't most of them), not a production issue. And in any case, if your Node process is churning CPU for seconds, it's not going to be able to respond to any network traffic.
this post might help you : Meteor error message: "Failed to receive keepalive! Exiting."
Removing autopublish with meteor remove autopublish and then writing my own publish and subscribe functions fixed the problem.