1. Check that the portal server pod is running. Note that the Gloo Portal server might run in the gloo-mesh namespace instead.

      kubectl get pods -n gloo-mesh -l app=gloo-mesh-portal-server
      
  2. Check the logs of the Gloo portal server in your workload cluster. To view logs recorded since a relative duration such as 5s, 2m, or 3h, you can specify the --since <duration> flag.

      kubectl logs -n gloo-mesh pods/$(kubectl get pod -l app=gloo-mesh-portal-server -A -o jsonpath='{.items[0].metadata.name}')
      

    Optionally, you can format the output with jq or save it in a local file so that you can read and analyze the output more easily.

      kubectl logs -n gloo-mesh pods/$(kubectl get pod -l app=gloo-mesh-portal-server -A -o jsonpath='{.items[0].metadata.name}') > gloo-mesh-portal-server.json
      
  3. Review the following common error messages from the portal server logs:

    • Failed to watch a Portal resource.
    • failed to connect to redis server: The portal server cannot connect to a Redis instance. Check that the secrets for the Redis credentials exist with the name and namespace that are in the portal server configuration. Also check that the Redis address is correct. For example, the docs use gloo-mesh by default, but you might deploy the portal server in another namespace, such as gloo-mesh-addons.
  4. Check the state of other Gloo components that the portal server uses:

  5. Make sure that you created all of the portal-related custom resources, and check the configuration for any errors.

      kubectl get apidocs,apischemadiscoveries,ratelimitserverconfigs,RatelimitConfigs,ratelimitserversettings,ratelimitclientconfigs,ratelimitpolicies,extauthpolicies,extauthserver,routetables,portals,portalgroups,virtualgateways -A
      
  6. Launch the Gloo UI and review the resources in the API and Portal tabs. Some common errors include the following:

    • A route table selecting the wrong backing service for your API products.
    • no associated schema: This error might mean that no ApiDoc is associated with the services in the route table. Or, the route might not match a valid route per the associated OpenAPI schema in the ApiDoc.