Unreachable server
Description
The server went offline for too long. This can be caused by a server crash, a network issue, or a misconfiguration. Often, this is a sign of a bigger issue.
Remediation
We recommend you to investigate two possible causes:
- Unhandled exceptions in your code: Verify that your code is handling exceptions properly. - Uncontrolled resource consumption: Verify what resolver has been used to leverage the data source.
GraphQL Specific
Apollo
For an unreachable server in the Apollo framework engine, ensure that the server is running and accessible. Check network configurations, firewall settings, and confirm that the server's URL is correct. Additionally, verify that the Apollo server is properly configured to listen on the correct port and that any environment variables or configurations required for the server to function are set correctly.
Yoga
To address an unreachable server issue within the Yoga framework engine, ensure that the server address is correct and the network connection is stable. Verify firewall settings and server configuration to allow incoming connections on the appropriate port. Additionally, check for any recent updates or changes in the Yoga framework that might require adjustments in the server setup.
Awsappsync
To address an unreachable server issue in the AWS AppSync framework, ensure that your VPC configuration allows for outbound internet access if your GraphQL endpoint is outside the VPC. Check security groups and network ACLs for proper inbound and outbound rules. Verify that the AppSync service role has the necessary permissions. Additionally, confirm that the endpoint URL is correct and the server is running. If the issue persists, enable AWS CloudTrail and AppSync logging to diagnose the connectivity problem.
Graphqlgo
To address an unreachable server issue in a GraphQL Go framework engine, ensure that the server is running and accessible. Check network configurations, firewall settings, and confirm that the correct port is open and listening. Verify that the GraphQL service is properly configured and that any dependent services or databases are also online. If the problem persists, consult the server logs for more detailed error messages that can help identify the root cause of the connectivity issue.
Graphqlruby
For an unreachable server issue in a GraphQL Ruby framework engine, ensure that the server is running and accessible. Check the network connectivity, firewall settings, and confirm that the correct port is open and listening. Review the server logs for any errors and address them accordingly. If the issue persists, consider restarting the server or the service hosting the GraphQL endpoint.
Hasura
To address an unreachable Hasura engine server, ensure that the server is running and accessible. Check the network connectivity, firewall settings, and confirm that the Hasura GraphQL engine's endpoint URL is correct. Additionally, verify that the appropriate ports are open and that the server's host is not experiencing any downtime. If you're using Docker or Kubernetes, ensure that the containers or pods are healthy and that the service is properly exposed. Consult the Hasura logs for any error messages that could provide further insight into the issue.
REST Specific
Asp_net
Check the server's connectivity, ensure the ASP.NET framework is properly installed and updated, review the event logs for errors, and verify the web.config file for any misconfigurations. If necessary, restart the server and the application pool associated with the ASP.NET application.
Ruby_on_rails
In a Ruby on Rails application, ensure that the server is properly configured and monitor the logs for any exceptions or errors. Set up automatic restarts with a tool like systemd or use a process manager such as Capistrano for deployment. Implement health checks and use a monitoring service to alert you when the server becomes unreachable. Check network configurations and firewall rules to ensure they are not blocking traffic to the server.
Next_js
Check the server logs for any error messages that can indicate the cause of the crash. Ensure the server hardware is functioning correctly. Verify network connectivity and DNS configurations. Review recent changes to the server's configuration files for any errors. If the issue persists, consider rolling back to a previous stable configuration or contacting your hosting provider for further assistance.
Laravel
Check the Laravel logs in 'storage/logs/' for specific error messages. Ensure the server is running and the network connection is stable. Verify the .env configuration for correctness, and if necessary, reboot the server or restart the web service. Consider setting up a monitoring system to alert on server downtime.
Express_js
Check the server's power and network connections. Verify the server's hardware and software health. Review the server logs for any error messages that occurred before the server became unreachable. Ensure the Express.js application is running and listening on the correct port. Check for any recent changes in the code or configurations that might have caused the issue. If a crash is suspected, investigate the root cause, and apply necessary patches or updates. Implement monitoring tools to alert on server unavailability in the future.
Django
Check the Django server logs for any exceptions or error messages that could indicate the cause of the crash. Verify the network connectivity and ensure the server configuration files are correct. If necessary, restart the Django service and monitor the system for stability.
Symfony
Check the Symfony server logs for any exceptions or errors that could indicate the cause of the downtime. Ensure that the server's hardware resources are sufficient and that the network configuration is correct. Verify that the Symfony environment is properly configured, and all dependencies are up to date. If a crash is suspected, investigate the possibility of memory leaks or other resource exhaustion issues. In case of a suspected network issue, check the firewall settings and connectivity between the server and its clients. If a misconfiguration is to blame, review the Symfony configuration files for any incorrect settings. Implement monitoring tools to alert on server health and performance metrics to detect future issues proactively.
Spring_boot
For a Spring Boot application, first ensure the server instance is running. If it's down, restart the service. Check the application logs for exceptions or errors that might indicate the cause of the crash, such as out of memory errors or database connection issues. Verify network configurations and firewall rules to ensure the server is reachable. If a misconfiguration is suspected, review the application.properties or application.yml files for any incorrect settings. Additionally, implement health checks and monitoring to detect and alert on future outages promptly.
Flask
Check the server logs for any exceptions or errors that could indicate the cause of the crash. Verify network connectivity and firewall settings to ensure the server is reachable. Review the Flask application's configuration for any incorrect settings. If necessary, restart the server and monitor its stability.
Nuxt
Check the server logs for any exceptions or errors that could indicate the cause of the crash. Verify network connectivity and ensure that the server's IP address is correctly configured. If using a cloud service, check for any service outages. Review Nuxt.js configuration files for any incorrect settings that might prevent the server from starting. If necessary, restart the server or deploy a new instance.
Fastapi
Check the server logs for any exceptions or errors that could indicate the cause of the crash. Verify network connectivity and firewall settings to ensure the server is reachable. Review the FastAPI application's configuration for any incorrect settings. If necessary, restart the server and monitor its performance to prevent future outages.
Configuration
Identifier:
resource_limitation/unreachable_server
Examples
Ignore this check
checks:
resource_limitation/unreachable_server:
skip: true
Score
- Escape Severity: LOW
Compliance
OWASP: API8:2023
pci: 1.2.3
gdpr: Article-32
soc2: CC1
psd2: Article-95
iso27001: A.17.1
nist: SP800-53
fedramp: AC-2
Classification
- CWE: 730
Score
- CVSS_VECTOR: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- CVSS_SCORE: 7.5