Jackett/Jackett · error · ExceptionWithConfigData

Login failed: No input found using selector {Input.Key}

Error message

Login failed: No input found using selector {Input.Key}

What it means

Thrown in DoLogin (form method) when Login.Selectors is true and QuerySelector(Input.Key) returns null for a declared login input. Each input key is interpreted as a CSS selector resolved against the landing page; a missing element means that field cannot be populated.

Source

Thrown at src/Jackett.Common/Indexers/Definitions/CardigannIndexer.cs:666

                    var value = input.GetAttribute("value") ?? "";

                    pairs[name] = value;
                }

                if (Login.Inputs != null && Login.Inputs.Any())
                {
                    foreach (var Input in Login.Inputs)
                    {
                        var value = applyGoTemplateText(Input.Value);
                        var input = Input.Key;

                        if (Login.Selectors)
                        {
                            var inputElement = landingResultDocument.QuerySelector(Input.Key);

                            if (inputElement == null)
                            {
                                throw new ExceptionWithConfigData($"Login failed: No input found using selector {Input.Key}", configData);
                            }

                            input = inputElement.GetAttribute("name");
                        }

                        pairs[input] = value;
                    }
                }

                // selector inputs
                if (Login.Selectorinputs != null && Login.Selectorinputs.Any())
                {
                    foreach (var selectorInput in Login.Selectorinputs)
                    {
                        try
                        {
                            var value = handleSelector(selectorInput.Value, landingResultDocument.FirstElementChild, required: !selectorInput.Value.Optional);

View on GitHub (pinned to adff194147)

Solutions

  1. Update the input selector in the definition to match the current login form markup.
  2. Inspect the live login page HTML to find the correct input id/name.
  3. Set up FlareSolverr if a challenge page is the cause.

Example fix

# before (definition)
login:
  selectors: true
  inputs:
    username: "#user"
# after
login:
  selectors: true
  inputs:
    username: "input[name='username']"
Defensive patterns

Strategy: validation

Validate before calling

// Verify each login input selector resolves before submitting
if (Login.Selectors)
    foreach (var input in Login.Inputs)
        if (landingResultDocument.QuerySelector(input.Key) == null)
            throw new InvalidOperationException($"Login input selector '{input.Key}' not found");

Try / catch

try { await DoLogin(); }
catch (ExceptionWithConfigData e) when (e.Message.Contains("No input found using selector"))
{
    // update the selector to current site markup
}

Prevention

When it happens

Trigger: A definition with login.selectors: true references a CSS selector for a username/password field that no longer exists on the page after a site redesign.

Common situations: Site redesigned the login form changing input ids/classes; wrong selector in a custom definition; the landing page is a challenge page rather than the real login form.

Related errors


AI-assisted analysis of Jackett/Jackett@adff194147 (2026-08-13). Data as JSON: /api/errors/391813a43c7a3b27. Report an issue: GitHub.