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
- Set a valid RequestURL (including {placeholders} if needed) on the CustomUploaderItem.
- Validate the .sxcu payload has a non-empty RequestURL before adding it to the uploader list.
- 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
- Validate .sxcu payloads have a non-empty RequestURL before import.
- Make RequestURL a required field in the editor UI.
- Refuse to save an uploader definition missing required fields.
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
- "File form name" must be configured.
- Screen recorder cache path is empty.
- Function name cannot be empty.
- The minimum parameter count for function "{0}" is {1}.
- Invalid function name: {0}
AI-assisted analysis of ShareX/ShareX@f7d4b6bfbf (2026-08-13).
Data as JSON: /api/errors/4ec019065c134540.
Report an issue: GitHub.