kubesphere/kubesphere · error

empty repository name

Error message

empty repository name

What it means

GetRepositoryTags guards the required 'repository' query parameter: it is empty, so there is nothing to query tags for and the request is rejected 400 before any registry call. Clients must pass ?repository=<name> alongside namespace/secret parameters.

Source

Thrown at pkg/kapis/resources/v1alpha3/handler.go:185

		canonicalizeRegistryError(request, response, err)
		return
	}

	response.WriteHeaderAndJson(http.StatusOK, config, restful.MIME_JSON)
}

// GetRepositoryTags fetchs all tags of given repository, no paging.
func (h *handler) GetRepositoryTags(request *restful.Request, response *restful.Response) {
	secretName := request.QueryParameter("secret")
	namespace := request.PathParameter("namespace")
	repository := request.QueryParameter("repository")

	q := query.ParseQueryParameter(request)

	var secret *v1.Secret

	if len(repository) == 0 {
		api.HandleBadRequest(response, request, fmt.Errorf("empty repository name"))
		return
	}

	if len(secretName) != 0 {
		object, err := h.resourceGetterV1alpha3.Get("secrets", namespace, secretName)
		if errors.IsNotFound(err) {
			api.HandleNotFound(response, request, err)
		}
		secret = object.(*v1.Secret)
	}

	tags, err := h.registryHelper.ListRepositoryTags(secret, repository)
	if err != nil {
		canonicalizeRegistryError(request, response, err)
		return
	}

	if !q.Ascending {

View on GitHub (pinned to 04a29b5c60)

Solutions

  1. Add the repository query parameter, e.g. ?repository=library/nginx
  2. Ensure the frontend form sends the repository field for this endpoint
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at pkg/kapis/resources/v1alpha3/handler.go:185 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of kubesphere/kubesphere@04a29b5c60 (2026-09-03). Data as JSON: /api/errors/b950249753123f93. Report an issue: GitHub.