ShareX/ShareX · error · Exception

"Request URL" must be configured.

Error message

"Request URL" must be configured.

What it means

Thrown by CustomUploaderItem.GetRequestURL when the RequestURL property is null or empty. A custom uploader definition must declare where to send the upload, so an empty RequestURL is rejected before any URL parsing/formatting occurs.

Source

Thrown at ShareX.UploadersLib/CustomUploader/CustomUploaderItem.cs:137

            if (!string.IsNullOrEmpty(name))
            {
                return name;
            }

            return "Name";
        }

        public string GetFileName()
        {
            return ToString() + ".sxcu";
        }

        public string GetRequestURL(CustomUploaderInput input)
        {
            if (string.IsNullOrEmpty(RequestURL))
            {
                throw new Exception(Localization.Strings.CustomUploaderItem_Request_URL_must_be_configured);
            }

            ShareXCustomUploaderSyntaxParser parser = new ShareXCustomUploaderSyntaxParser(input);
            parser.URLEncode = true;
            string url = parser.Parse(RequestURL);

            url = URLHelpers.FixPrefix(url);

            Dictionary<string, string> parameters = GetParameters(input);
            return URLHelpers.CreateQueryString(url, parameters);
        }

        public Dictionary<string, string> GetParameters(CustomUploaderInput input)
        {
            Dictionary<string, string> parameters = new Dictionary<string, string>();

            if (Parameters != null)
            {

View on GitHub (pinned to f7d4b6bfbf)

Solutions

  1. Set a valid RequestURL (including {placeholders} if needed) on the CustomUploaderItem.
  2. Validate the .sxcu payload has a non-empty RequestURL before adding it to the uploader list.
  3. Surface the missing-field error in the custom uploader editor at save time.

Example fix

// before
if (string.IsNullOrEmpty(RequestURL)) throw new Exception("\"Request URL\" must be configured.");

// after
if (string.IsNullOrWhiteSpace(RequestURL))
    throw new InvalidOperationException("Custom uploader 'Request URL' is empty. Open the uploader settings and set it.");
Defensive patterns

Strategy: validation

Validate before calling

if (string.IsNullOrWhiteSpace(item.RequestURL))
    throw new InvalidOperationException("Custom uploader 'Request URL' is not set.");

Type guard

static bool HasRequestUrl(CustomUploaderItem i) => !string.IsNullOrWhiteSpace(i?.RequestURL);

Try / catch

try { url = item.GetRequestURL(input); }
catch (Exception ex) when (ex.Message.Contains("Request URL"))
{ /* open editor, require RequestURL, then retry */ }

Prevention

When it happens

Trigger: Loading a .sxcu custom uploader file whose RequestURL field was never set or was cleared; programmatically constructing a CustomUploaderItem without setting RequestURL and then calling GetRequestURL.

Common situations: Hand-edited .sxcu JSON missing the RequestURL key; importer created an incomplete item; user cleared the URL field in the editor but saved.

Related errors


AI-assisted analysis of ShareX/ShareX@f7d4b6bfbf (2026-08-13). Data as JSON: /api/errors/4ec019065c134540. Report an issue: GitHub.