When Manifold isn't working the way it should, the best place to begin troubleshooting is by looking at Manifold's logs.
|API app server (Puma)||/var/log/manifold/puma/current|
|Nginx access log||/var/log/manifold/nginx/access.log|
|Nginx error log||/var/log/manifold/nginx/error.log|
See the troubleshooting services section in our documentation for more information on managing and checking services. If Manifold isn't working correctly, check and make sure all services are running. If a service isn't starting, check the corresponding log file to figure out why the service won't run correctly.
If you're encountering an application error, start by figuring out if it's a client error or an API error. If you're seeing a 500 error from the API, it could indicate a misconfiguration or a bug. Check the end of the API log to better understand what's causing the error. Errors in the client application will show up in the client log, or in your console in developer tools. If you see errors in these places, please report them to us on Slack. If there's a bug in Manifold, we want to know about it!
Manifold runs a number of tasks in the background, including but not limited to image processing, email delivery, collection membership calculations, epub generation, and project packaging. It relies on a piece of open source software called Sidekiq to manage these job queues. If you are logged in to your manifold instance as an admin user, you may view the Sidekiq job queue at http://your-domain/api/sidekiq. If background jobs are failing, you will see a high count of failed or retried jobs on the dashboard. Look at the retry queue for clues about why jobs are failing.
Like many Ruby applications, the Manifold API consumes and can hold onto available memory. With Manifold v6, we've fixed a number of memory issues and upgrades Ruby to v2.7, which has improved garbage collection. That said, you might experience issues if your instance doesn't have adequate memory resources to support Manifold's various underlying services. If Manifold is non-responsive or unstable, monitory the available memory and consider increasing the resources devoted to Manifold.