"We detected a Misuse. Please read the stack trace"

Hi there,

I’m currently running Ghost 4.11 using the FastComet server. When I log onto the website, I receive a 503 service error. To my knowledge, I haven’t really done anything to mess with Ghost. It literally changed to a 503 error when I was on vacation.

FastComet has not been helpful and has not saved backups of the JSON.

"Service Unavailable

The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

Additionally, a 503 Service Unavailable error was encountered while trying to use an ErrorDocument to handle the request."

  • What’s your URL? This is the easiest way for others to debug your issue
    taboolit.com

  • What version of Ghost are you using?
    Ghost 4.11.0

  • What configuration?
    Not sure? I’m hosting on FastComet

  • What browser?
    Brave

- What errors or information do you see in the console?
Debug Information:
OS: unknown, vunknown
Node Version: v12.22.1
Ghost Version: 4.11.0
Ghost-CLI Version: 1.17.3
Environment: development
Command: ‘ghost start’
Message: Ghost was able to start, but errored during boot with: We detected a misuse. Please read the stack trace.
Stack: Error: Ghost was able to start, but errored during boot with: We detected a misuse. Please read the stack trace.
at ChildProcess. (/usr/local/lib/node_modules/ghost-cli/lib/utils/local-process.js:75:35)
at ChildProcess.emit (events.js:314:20)
at emit (internal/child_process.js:877:12)
at processTicksAndRejections (internal/process/task_queues.js:85:21)

- What steps could someone else take to reproduce the issue you’re having?
Not sure?

Same issue here on one of my Ghost instances on Fast Comet shared hosting when today I Restarted the instance.

Have submitted a Trouble Ticket and will update here as soon as I learn anything!

1 Like

OK, I did receive a meaningful answer from FastComet Support which I am copying here below…


Ivan Rachev - FastComet Support Staff - 13th Sep 2021 (14:32)

Hello,

Thank you for your patience, Jennifer.

Firstly, I would like to mention that the maintenance has been completed. That said, I noticed that your domain:

> pejs.us

is not pointed to us, as when accessed directly, I am seeing the following website:

> https://prnt.sc/1s1z1lp

So, I have accessed the website directly via hosts file, to bypass Cloudflare and open it directly from our server, where I encountered the 503 error. So, I have gone ahead and tried to start the Ghost application on our server and the following was reported:

===============================

[namespac@txpro17 PEJS]$ ghost start
┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ The current Node.js version (10.15.0) has reached end-of-life status. │
│Ghost-CLI will drop support for this Node.js version in an upcoming release, please update your Node.js version.│
│ See https://ghost.org/docs/faq/node-versions/. │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Found a development config but not a production config, running in development mode instead
✔ Checking system Node.js version - found v10.15.0
ℹ Ensuring user is not logged in as ghost user [skipped]
ℹ Checking if logged in user is directory owner [skipped]
✔ Checking current folder permissions
✔ Validating config
✔ Checking memory availability
✖ Checking binary dependencies
One or more errors occurred.

1) Checking binary dependencies

Message: The installed node version has changed since Ghost was installed.
Help: Run ghost update 4.13.0 --force to re-install binary dependencies.

Debug Information:
OS: unknown, vunknown
Node Version: v10.15.0
Ghost Version: 4.13.0
Ghost-CLI Version: 1.17.3
Environment: development
Command: 'ghost start'

===============================

So, I have upgraded the node version for your account to 14.17 and proceed with the update, in order to install the missing binary dependencies. After doing so, I also had to adjust the casper theme again, by creating a symlink, as otherwise the following error was being reported:

NAME: NotFoundError
CODE: ENOENT
MESSAGE: The currently active theme "casper" is missing.

level: normal

"name: casper"
"path: /home/namespac/PEJS/content/themes/"

===============================

After these changes, only that error remained, which was preventing you from starting the Ghost:

[2021-09-13 07:27:25] WARN Cannot use remote webhooks in development. See https://ghost.org/docs/webhooks/#stripe-webhooks for developing with Stripe.
[2021-09-13 07:27:25] ERROR

NAME: IncorrectUsageError
MESSAGE: We detected a misuse. Please read the stack trace.

level: critical

IncorrectUsageError: We detected a misuse. Please read the stack trace.
at Object.init (/home/namespac/PEJS/versions/4.13.0/core/server/services/members/service.js:166:23)
at initServices (/home/namespac/PEJS/versions/4.13.0/core/boot.js:198:17)
at async bootGhost (/home/namespac/PEJS/versions/4.13.0/core/boot.js:332:9)

===============================

The error states that in order to use the webhooks for Stripe, your ghost should not be started in development but production mode. Upon doing so, I came across the same error as my colleague Viliyan:

0|PEJS | TypeError: Cannot read property 'connection' of undefined
0|PEJS | at Object.sanitizeDatabaseProperties (/home/namespac/PEJS/versions/4.13.0/core/shared/config/utils.js:62:25)
0|PEJS | at Object.loadNconf (/home/namespac/PEJS/versions/4.13.0/core/shared/config/loader.js:53:16)
0|PEJS | at Object.<anonymous> (/home/namespac/PEJS/versions/4.13.0/core/shared/config/index.js:3:25)
0|PEJS | at Module._compile (internal/modules/cjs/loader.js:1072:14)
0|PEJS | at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)
0|PEJS | at Module.load (internal/modules/cjs/loader.js:937:32)
0|PEJS | at Function.Module._load (internal/modules/cjs/loader.js:778:12)
0|PEJS | at Module.require (internal/modules/cjs/loader.js:961:19)
0|PEJS | at Module.Hook._require.Module.require (/usr/local/lib/node_modules/pm2/node_modules/require-in-the-middle/index.js:70:39)
0|PEJS | at require (internal/modules/cjs/helpers.js:92:18)

===============================

That error states that it is unable to make a connection, caused by the fact the in order to run a Ghost in a production mode, the database need to be handled via MySQL and not SQLite, which comes by default. With that in mind, I recommend the same as my collegue to restore your website from a backup when the website was working on our server. Alternatively, if you like, we can migrate the website from your other host, from where it currently loads the following:

> https://prnt.sc/1s2dg6x

Let us know if there is anything else that we can assist you with. We remain at your disposal.

Best Regards,

Ivan R.
Technical Support Team
--
Website: https://www.fastcomet.com/
Facebook: https://www.facebook.com/fastcometcloud/
Twitter: https://twitter.com/fastcometcloud/

HERE IS THE NEXT ENTRY copied from my FC Support Ticket

Ivan Rachev - FastComet Support Staff - 13th Sep 2021 (20:38)

Hello,

Apologies Jennifer, you can test the domain via hosts file by adding the following in the file:

45.79.48.52 pejs.us www.pejs.us

You can find more information on where to find the file, depending on the operating system of your device, in the guide below:

> https://www.fastcomet.com/tutorials/getting-started/local-hosts-file

Regarding the steps that I have done above, they are:

1. I have used SSH connection to execute the commands, or you can also use the in-built Terminal tool in cPanel.
2. Then I have gone to the ghost installation directory, in your case:

[namespac@txpro17 ~]$ cd PEJS
[namespac@txpro17 PEJS]$ pwd
/home/namespac/PEJS
[namespac@txpro17 PEJS]$ ghost ls
┌───────────────┬─────────────────┬─────────┬───────────────────────┬──────────────────┬──────┬─────────────────┐
│ Name │ Location │ Version │ Status │ URL │ Port │ Process Manager │
├───────────────┼─────────────────┼─────────┼───────────────────────┼──────────────────┼──────┼─────────────────┤
│ GHOST-O-MATIC │ ~/ghost-o-matic │ 4.10.2 │ stopped │ n/a │ n/a │ n/a │
├───────────────┼─────────────────┼─────────┼───────────────────────┼──────────────────┼──────┼─────────────────┤
│ PEJS │ ~/PEJS │ 4.13.0 │ running (development) │ https://pejs.us/ │ 2371 │ local │
└───────────────┴─────────────────┴─────────┴───────────────────────┴──────────────────┴──────┴─────────────────┘
[namespac@txpro17 PEJS]$

You can find it under the Location field after typing ghost ls, as shown above.

3. Then, I tried to start it via ''ghost start''' as seen in my reply above, which prompted the error with the Ghost version.
4. In order to increase the Node version, I had to install NVM on your account by running these commands:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
source .bashrc
nvm install --lts

Then checking the node version via:

[namespac@txpro17 ~]$ node -v
v14.17.6

I should mention that this is currently possible only on some of our servers, due to the operating system that they are running, so in case the new node version generates errors, then that means that a change of the server is required. In time all servers will be migrated to a newer operating system, however, that is currently being slowly done, so there are still servers using CentOS 6.

On such servers, the node version can be changed by creating a dummy NodeJS instance via cPanel > Setup NodeJS and simply choose the version:

> https://prnt.sc/1s3da18

After which, copy and paste the following in the SSH session:

> https://prnt.sc/1s3dcxy

You will need to change the directory to your ghost for the next step again.

5. After the node version is done, in your case, I had to update the Ghost application in order to install the missing binary files as mentioned by the error:

Message: The installed node version has changed since Ghost was installed.
Help: Run ghost update 4.13.0 --force to re-install binary dependencies.

The command is:

ghost update 4.13.0 --force

6. I had to then go to the following directory:

cd content/theme

and created a symlink to the files of the casper theme, as it was missing in your case using the command:

ln -s /home/cPaneluser/ghostapp/current/content/themes/casper casper

In your case the command looked as follows:

ln -s /home/namespac/PEJS/current/content/themes/casper casper

The path is different on the different Ghost applications, so that is something to consider. The symlink looks as follows once done:

> https://prnt.sc/1s3du46

===========================

I would like to note that the errors could be seen by running:

ghost log

===========================

7. Now regarding the Stripe webhooks and the production mode, I found out the following guide that can help you migrate the SQLite database of your website to MySQL in order to switch to production:

> https://stanislas.blog/2019/09/migrating-ghost-sqlite-to-mysql/

Simply, you need to export the data of your website from the backend, which is why I needed the login details to:

https://pejs.us/ghost/

Then create a MySQL database via cPanel > MySQL Databases Wizard as described here:

> https://www.fastcomet.com/tutorials/cpanel/create-database

Copy the file config.development.json via SSH, FTP or File Manager to:

config.production.json

And replace:

"database": {
"client": "sqlite3",
"connection": {
"filename": "./content/data/ghost.db"
}
}

============

with:

"database": {
"client": "mysql",
"connection": {
"host": "mysql.host",
"port": 3306,
"user": "ghost",
"password": "thisisnotmypasswordbtw",
"database": "ghost"
}
},

As mentioned by the guide. In the guide after } at the end, there is not a comma, which should be added in order to avoid a syntax error. Above I have added it as you can see, so you can simply copy it from there. Of course, these values should be changed to:

"host": "localhost",
"user": "DATABASE USER",
"password": "DATABASE PASSWORD",
"database": "DATABASE NAME"

=================

The rest can be found in the guide, however, simply create a new user in the backend, delete all default contents and then import the JSON file that was created in the beginning. You can also create a backup of the whole Ghost directory using cPanel > File Manager > Compress or simply coping it to another place.

After that is done, the ghost should be working on production mode. However, in your case, the Stripe webhooks will need to be disabled in order to run it in development mode and proceed with the migration to MySQL.

Pretty much that is the whole process, Jennifer, even though I tried a couple of other things in order to make it work however since they were unsuccessful, I did not listed them. And, if you share that information, it is worth mentioned that each website is unique and even though that can serve as a base to troubleshooting or moving to production mode on our servers, there could be errors or obstacles that I have not encountered now, or do not come to mind.

We are remaining at your disposal of course, no matter the issue, and will gladly help you in any way we can.

Best Regards,

Ivan R.
Technical Support Team
--
Website: https://www.fastcomet.com/
Facebook: https://www.facebook.com/fastcometcloud/
Twitter: https://twitter.com/fastcometcloud/

Hey Denvergeeks,

Thanks for your reply!

After going back and forth with FastComet with two weeks (and showing them this post), I’ve decided to just chalk this one up as a loss.

FastComet wasn’t helpful at all in my case. They tried backing up and that failed. It seems like they’re not really familiar with the Ghost CMS.

I’ll be restarting my website from scratch with Ghost Pro. Thanks for all the help though!