{"record":{"id":"32a5a9c3c3c7c593","repo":"cline/cline","slug":"remote-plugin-file-urls-must-use-https-source","errorCode":null,"errorMessage":"Remote plugin file URLs must use https: ${source}","messagePattern":"Remote plugin file URLs must use https: (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"sdk/packages/core/src/services/plugin-install.ts","lineNumber":304,"sourceCode":"\t\treturn null;\n\t}\n\tlet parsed: URL;\n\ttry {\n\t\tparsed = new URL(source);\n\t} catch {\n\t\treturn null;\n\t}\n\n\tconst host = parsed.hostname.toLowerCase();\n\tconst filename = filenameFromUrlPath(parsed.pathname);\n\tconst isPluginFile = isPluginModulePath(filename);\n\tconst isGitHubFile =\n\t\t(host === \"github.com\" || host === \"www.github.com\") &&\n\t\tisGitHubFilePath(parsed.pathname);\n\n\tif (parsed.protocol !== \"https:\") {\n\t\tif (isGitHubFile || host === \"raw.githubusercontent.com\" || isPluginFile) {\n\t\t\tthrow new Error(`Remote plugin file URLs must use https: ${source}`);\n\t\t}\n\t\treturn null;\n\t}\n\n\tif (host === \"github.com\" || host === \"www.github.com\") {\n\t\tconst parts = parsed.pathname.split(\"/\").filter(Boolean);\n\t\tif (!isGitHubFile) {\n\t\t\treturn null;\n\t\t}\n\t\tif (!isPluginFile) {\n\t\t\tthrow new Error(`Remote plugin file must be .js or .ts: ${source}`);\n\t\t}\n\t\tconst rawParts = [parts[0], parts[1], ...parts.slice(3)];\n\t\treturn {\n\t\t\ttype: \"remote\",\n\t\t\turl: `https://raw.githubusercontent.com/${rawParts.join(\"/\")}`,\n\t\t\tfilename,\n\t\t};","sourceCodeStart":286,"sourceCodeEnd":322,"githubUrl":"https://github.com/cline/cline/blob/491b30b806fdb8c93513f821f2b87d63a61542f5/sdk/packages/core/src/services/plugin-install.ts#L286-L322","documentation":"Error \"Remote plugin file URLs must use https: ${source}\" thrown in cline/cline.","triggerScenarios":"Thrown at sdk/packages/core/src/services/plugin-install.ts:304 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"491b30b806fdb8c93513f821f2b87d63a61542f5","analyzedAt":"2026-08-25T13:45:22.367Z","schemaVersion":2},"datasetVersion":"2026-08-25T21:54:21.419Z"}