Cryptic error message

When I try to install my packaged WebExtension, I get this cryptic-looking error message:

1465314135964 addons.xpi WARN Invalid XPI: Error: File /Workspaces/----------/WebExtensions/AutoDownVote.SE (Mozilla Firefox).xpi does not contain a valid install manifest (resource://gre/modules/addons/XPIProvider.jsm:1408:11) JS Stack trace: loadManifestFromZipReader<@XPIProvider.jsm:1408:11 < TaskImpl_run@Task.jsm:315:40 < TaskImpl@Task.jsm:276:3 < createAsyncFunction/asyncFunction@Task.jsm:250:14 < AddonInstall.prototype.loadManifest<@XPIProvider.jsm:5476:26 < TaskImpl_run@Task.jsm:315:40 < TaskImpl@Task.jsm:276:3 < createAsyncFunction/asyncFunction@Task.jsm:250:14 < AddonInstall.prototype.initLocalInstall@XPIProvider.jsm:5136:5 < AddonInstall.createInstall@XPIProvider.jsm:6151:5 < this.XPIProvider.getInstallForFile@XPIProvider.jsm:3821:5 < callProviderAsync@AddonManager.jsm:254:12 < AddonManagerInternal.getInstallForFile/<.nextObject@AddonManager.jsm:2006:9 < AsyncObjectCaller.prototype.callNext@AddonManager.jsm:381:7 < AsyncObjectCaller@AddonManager.jsm:361:3 < AddonManagerInternal.getInstallForFile@AddonManager.jsm:2004:5 < this.AddonManager.getInstallForFile@AddonManager.jsm:3142:5 < buildNextInstall@extensions.js:1271:11 < gViewController.commands.cmd_installFromFile.doCommand@extensions.js:1277:9 < gViewController.doCommand@extensions.js:1447:5 < initialize/<@extensions.js:96:5

I tried changing the code and packaging it differently, but Firefox always rejects the XPI file. I just don’t get why it says, “File /Workspaces/----------/WebExtensions/AutoDownVote.SE (Mozilla Firefox).xpi does not contain a valid install manifest,” when the XPI clearly does have an install manifest. What’s this supposed to mean, and what am I doing wrong?

Attaching the file for testing would be useful. Also, is AutoDownVote.SE (Mozilla Firefox).xpi the name of the file?

How do you attach a file? It only lets me attach images.

Upload to Dropbox or some other file-sharing service and post the link here.