H12 request timeout on grapheneDB Neo4j connection - node.js

Needless to say I am new to both Heroku and GrapheneDB. I have a Nodejs app using Neo4j that runs fine on my local machine. I moved it to Heroku and used GrapheneDB to connect the neo4j DB to the app. When I run the app on Heroku I get a H12 Request timeout when I try to login which require the database access. The only change in my code is the following recommended by GrapheneDB:
var graphenedbURL = process.env.GRAPHENEDB_BOLT_URL;
var graphenedbUser = process.env.GRAPHENEDB_BOLT_USER;
var graphenedbPass = process.env.GRAPHENEDB_BOLT_PASSWORD;
var driver = neo4j.driver(graphenedbURL, neo4j.auth.basic(graphenedbUser, graphenedbPass));
//var driver = neo4j.driver("bolt://localhost", neo4j.auth.basic("neo4j", "xxxxx"));
where I added the first four lines and commented out the fifth line.
The non-DB functions of the app works fine but any attempt to connect to the db result in a H12. I am using Javascript with Neo4j 3.0.8 and papertail for logging. The following is the papertail log when I tried to register a user:
Feb 09 18:53:44 puppydog-dev-2017 heroku/router: at=error code=H12 desc="Request timeout" method=POST path="/users/registerowner" host=puppydog-dev-2017.herokuapp.com request_id=867c7bc5-2d61-4c82-8b42-87732b21d449 fwd="104.244.227.83" dyno=web.1 connect=1ms service=30000ms status=503 bytes=0
Can anyone shed some light on whats happening here?

I discovered that the H12 is as a result of the DB being shutdown by a reset from the GrapheneDb platform. All subsequent calls to the DB result in H12 since the DB is not available. The original problem that cause the DB to shutdown is still unknown.

Related

An Unusual api calls every 5 mins

`2022-07-27T14:44:04.939800+00:00 heroku[router]: at=info method=POST path="/sales/test/_vti_bin/publishedlinksservice.asmx" host=......herokuapp.com request_id=f3b1c597-25bc-469b-af21-94222743728f fwd="154.160.25.213" dyno=web.1 connect=0ms service=1ms status=404 bytes=462 protocol=https`
I have hosted a node js application on heroku, if I check the logs, there is always a request every 5 to 30 mins to /sales/test/_vti_bin/publishedlinksservice.asmx Does anyone have an idea of what is going on publishedlinksservice.asmx ?
By seeing the log, it actually looks more like an error code.
Analyzing it further, it may be an internal Heroku error as a file on the sales/test/_vti_bin directory was not found as it returns a status=404 on the log.
I do not recognize where this file comes from, but it is a good idea to contact support if you do not recognize this file as well and the issue persists.

Heroku application stopped serving db2 connection

I have my app hosted on heroku for nearly 1 year, and in the past 24 hours, it stopped working. I get this in my logs:
2021-11-08T18:15:06.475815+00:00 app[web.1]: [Error: [IBM][CLI Driver] SQL30081N A communication error has been detected. Communication protocol being used: "TCP/IP". Communication API being used: "SOCKETS". Location where the error was detected: "". Communication function detecting the error: "selectForConnectTimeout". Protocol specific error code(s): "115", "*", "*". SQLSTATE=08001
2021-11-08T18:15:06.475827+00:00 app[web.1]: ] {
2021-11-08T18:15:06.475828+00:00 app[web.1]: error: '[node-ibm_db] SQL_ERROR',
2021-11-08T18:15:06.475829+00:00 app[web.1]: sqlcode: -30081,
2021-11-08T18:15:06.475829+00:00 app[web.1]: state: '08001'
2021-11-08T18:15:06.475830+00:00 app[web.1]: }
2021-11-08T18:15:33.386490+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=POST path="/login" host=www.mysite.ca request_id=3d627300-28d2-48af-a86e-60bdb950298a fwd="99.249.30.56" dyno=web.1 connect=0ms service=30000ms status=503 bytes=0 protocol=https
It seems to not like whatever is going on with db2. I can access my database no problem through my local machine, and see everything with in my db tables. I also have this directly from my heroku dashboard.
i am not able to figure out what the issue is. does anyone have any ideas?
Thanks to everyone for their answers. I did some more digging around, and turns out what solved it was reinstalling the db2 driver locally, and pushing it to heroku. Something must have changed that required an update to the db2 driver to connect with the heroku sevrer.

Getting Error when refreshing my react app

My app is working fine until i try to referesh the page. I made the build version of the frontend and then pasted all the contents in the public folder of node js backend. Everything is working just fine until i do a refresh.
I find a similar problem : Heroku Deployed App, Page Refresh error or Redirecting error
The only difference is i am getting this error: Failed to load resource: the server responded with a status of 404 (Not Found).
I did heroku logs and found this:
2021-01-29T20:31:35.136038+00:00 app[web.1]: GET /posts/myNewsFeed 304
377.308 ms - - 2021-01-29T20:31:35.137763+00:00 heroku[router]: at=info method=GET path="/posts/myNewsFeed"
host=insta-clone-01.herokuapp.com
request_id=d0dfee79-74f4-43c2-9ce5-7df121136872 fwd="1.38.45.193"
dyno=web.1 connect=0ms service=383ms status=304 bytes=181
protocol=https
2021-01-29T20:31:37.519726+00:00 heroku[router]: at=info method=GET
path="/home" host=insta-clone-01.herokuapp.com
request_id=d0a7784f-bcbe-41ed-88de-43e71cd364c7 fwd="1.38.45.193"
dyno=web.1 connect=0ms service=3ms status=404 bytes=400 protocol=https
2021-01-29T20:31:37.520005+00:00 app[web.1]: GET /home 404 1.326 ms -
160
These are the logs for the same page but the first is when i normally get to the page and the second one is when i refresh the page.
what i can say from this is when i am normally trying to get to a page the request is happening to the /posts/myNewsFeed which is my node api endpoint but when i am refreshing the same page the request is happening to /home which is my route for the page ,not the node api endpoint and that's why i am getting the error.
You can see the project here https://github.com/Aditya-shrivastav/InstagramClone
Anyone who can give a solution for this?

Heroku nodejs can not post data

I have a simple nodejs api, which connected to mongodb on mlab.
On local I can use GET, POST methods. But after I deployed to Heroku:
I only GET data.
POST method returns 400 bad request. And if I use heroku logs -t I can't see log about post method.
I searched related keywords: heroku -nodejs- post method 400 bad request, they don't work with my case.
This is my log after I use postman send GET and POST requests.
2020-04-01T16:58:02.831314+00:00 app[web.1]: tiny wiz running // my console.log
2020-04-01T16:58:03.131550+00:00 heroku[web.1]: State changed from starting to up
2020-04-01T16:58:03.259355+00:00 app[web.1]: (node:23) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
2020-04-01T16:58:27.099916+00:00 heroku[router]: at=info method=GET path="/" host=MYAPP_URL request_id=a5f384ad-b857-4356-a4de-f8148cfd2e16 fwd="publicIP" dyno=web.1 connect=1ms service=100ms status=200 bytes=1016 protocol=https
2020-04-01T16:58:27.094337+00:00 app[web.1]: GET METHOD HERE!!! // my console.log
▸ Log stream timed out. Please try again.
As you can see, It has no log about POST method.
Pls let's me know if you has any infomation about my environment.
Thank in advance!

Heroku logs H18 (503) error but I'm sending error 400 to the client from my node.js app?

I'm sending an error message to the client with status 400 but the logs show Heroku error H18 Server Request Interrupted. I'm logging also the request-id before sending 400 to make sure I'm watching the same request.
heroku[router] info sock=backend at=error code=H18 desc="Server Request Interrupted" method=POST path="/api/v1/email" host=getinvoicesimple.com request_id=b332c22a-78dd-423f-926e-11ae3497d67d fwd="86.150.146.32" dyno=web.1 connect=1ms service=103ms status=503 bytes=267 protocol=https
The app is pretty simple and as it's being aborted before doing anything more complex, I don't see any reason for that.
The entrypoint is a multipart post
router.post('/api/v1/email', function(req, res) {
const appVersion = req.header('x-is-version');
if (!appVersion) {
console.error(`App version is required. ${req.headers['x-request-id']}`)
return res.status(400).send('App must be updated.').end()
}
...
/// The rest of the function
})

Resources