Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Add instructions for DSpace 7

...

General Instructions

DSpace 6.x or below

Finding the Error Message in your Log Files

  1. If the expected information simply never appears, leaving a blank browser screen, the problem is likely with either a servlet (for JSPUI) or an XSLT Theme (for XMLUI). The error message should be in either [dspace]/log/dspace.log OR [tomcat]/logs/. For the XMLUI, you may also want to check the Cocoon logs (see above for path) to see if any extra information can be found there.
  2. If you get an "Internal Server Error" message, you will have to check the log files for a full error listing. If your email address is set up in dspace.cfg (alert.recipient) as the DSpace Administrator, you should receive an email with this full error listing. If not, move into the DSpace log directory ([dspace]/log) and view the end of the log file:
    • (Linux or Mac OSX) Go to the DSpace log directory via the command line and enter: tail -100 dspace.log Alternatively, you can open up the dspace.log file in your favorite text editor and look near the bottom of the file for the error message.
    • (Windows) Go to the DSpace log directory, and open dspace.log in your favorite text editor. Look near the bottom for the error message.
  3. Usually, the culprit error is in the first five to ten lines of the error stack listing. The error stack starts with a line similar to one of the following:
    • yyyy-mm-dd time ERROR ... OR,
    • yyyy-mm-dd time WARN ...

Searching for Fixes to Common Errors

Turning on Debugging (optional)

  • If you'd like to try and do some debugging yourself, you can change the DSpace logger settings to DEBUG which will sometimes provide you with more information about the error. To turn on debugging, visit the [dspace]/config/log4j.properties file and do the following:

    • To enable DEBUG logging in the dspace.log file, change the log4j.rootCategory and log4j.logger.org.dspace settings to DEBUG rather than INFO.

    • (XMLUI Only) To enable DEBUG logging in the cocoon.log file, change the log4j.logger.org.apache.cocoon setting to DEBUG rather than INFO.

    • NOTE: You'll need to restart Tomcat after enabling DEBUG mode in the log4j.properties file.

    • WARNING: Make sure to turn off debugging once you are finished. Leaving debugging turned on will cause the log files to grow very large very quickly!

  • Depending on where you got your Java runtime environment, you may have the jps command.  jps -v can show you the options actually used to run your Servlet container, which can be useful in debugging startup issues.  A plain jps command will list process IDs of running JREs, which you can use with your favorite process monitoring tools.  jps can only show processes which your user account is allowed to inspect, so you should run it as the user which runs the container, or as a superuser.

DSpace 7.x (or above)

Finding the Error Message in the User Interface

In DSpace 7, the User Interface is now built on Javascript (Angular.io).  This means that some errors are only visible in your browser (and therefore will never appear in log files).

To find the errors in your browser, you will want to open your browser's Developer Tools and then try to reproduce the error again.

  • In Chrome, go to "More Tools → Developer Tools".  Then try to reproduce the error back in your open browser tab. 
    • The "Console" tab will provide a brief overview of errors that have occurred in this tab of your browser.
    • The "Network" tab will provide more information on where the error appeared (as the request that threw an error will appear in red).  Clicking the red request will show you the exact Headers sent/returned and the error Response.
  • In Firefox, go to "Web Developer → Web Developer Tools". Then try to reproduce the error back in your open browser tab. 
    • The "Console" tab will provide a brief overview of errors that have occurred in this tab of your browser.
    • The "Network" tab will provide more information on where the error appeared (as the request that threw an error will appear in red/purple).  Clicking that request will show you the exact Headers sent/returned and the error Response.
  • In Microsoft Edge, go to "More Tools → Developer Tools".  Then try to reproduce the error back in your open browser tab.
    • The "Console" tab will provide a brief overview of errors that have occurred in this tab of your browser.
    • The "Network" tab will provide more information on where the error appeared (as the request that threw an error will appear in red).  Clicking the red request will show you the exact Headers sent/returned and the error Response.

Finding error messages in the REST API logs

Some (but not necessarily all) errors will result in logged errors on the backend. Similar to DSpace 6.x and below, the error message should be in either [dspace]/log/dspace.log OR [tomcat]/logs/.

Usually, the culprit error will appear in the logs with a line similar to one of the following:

  • yyyy-mm-dd time ERROR ... OR,
  • yyyy-mm-dd time WARN ...

Debug mode for the REST API (optional)

If you are not seeing the error appear in the REST API logs, and the error information is minimal in the User Interface, you can tell the REST API to always return the entire error stacktrace in any error response.  This is done by temporarily adding the following to your local.cfg (on the backend): 

Code Block
# This tells the REST API to include a "stacktrace" param in error responses
# This param will include the full Java stacktrace of the error
server.error.include-stacktrace = always

Enabling this setting requires you to reboot your servlet engine (e.g. Tomcat). 

Once this setting is enabled, you can reproduce the error from the User Interface. Now, the error message in your User Interface (in your browser's Developer Tools) may show the entire Java stacktrace that resulted in the error.

WARNING: Keep in mind that you should only enable this setting TEMPORARILY.  Keeping this set to "always" is a security issue in Production scenarios, as it allows anyone to view the detailed stacktrace of any error they cause.  These stacktraces can sometimes leak important information about your underlying system which can help hackers to find vulnerabilities.

Turning on Debug Logging for the REST API (optional)

If none of the above helped, or you are hitting a very strange backend error, you can change the DSpace logger settings to DEBUG which will sometimes provide you with more information about the error. To turn on debugging, visit the [dspace]/config/log4j2.xml file and do the following:

  • To enable DEBUG logging in the dspace.log file, change the loglevel.dspace Property to DEBUG rather than INFO.

  • NOTE: You'll need to restart Tomcat after enabling DEBUG mode in the log4j2.xml file.

  • WARNING: Make sure to turn off debugging once you are finished. Leaving debugging turned on will cause the log files to grow very large very quickly!

Report the Error and Describe How You Encountered It

...

  1. Your environment: Operating system, version of DSpace, version of Tomcat, Java, etc.
    1. NOTE: on DSpace 4.x or above, simply running "./dspace version" from the commandline command line will provide much of this information for you.
  2. The exact steps you took to encounter the error, as this will help us in investigating the problem. Often, we need to understand how to replicate the error before we can determine what the underlying cause is.
  3. The error stack that you found in your log file