Update manifest did not contain an updates property

I’ve ported my extension over to being a Web Extension but I’m having difficulty getting Firefox to auto-update to the new version. Upgrades were previously done using the RDF format so I’m aiming to change it once to point to the new build and then future updates will be handled using the JSON format (which I’ve tested and works fine).

When I check for updates, I get the following warning:

Update manifest for jid1-np4qQKys1098lQ@jetpack did not contain an updates property

My manifest looks like this:

<?xml version="1.0" encoding="utf-8"?>
<RDF
	xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:em="http://www.mozilla.org/2004/em-rdf#">
	<Description about="urn:mozilla:jid1-np4qQKys1098lQ@jetpack">
		<em:updates>
			<Seq>
				<li>
					<Description>
						<em:version>2.7.1</em:version>
						<em:targetApplication>
							<Description>
								<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
								<em:updateLink>https://s3-eu-west-1.amazonaws.com/gustaf-dist/PROD/gustaf-2.7.1.xpi</em:updateLink>
							</Description>
						</em:targetApplication>
					</Description>
				</li>
			</Seq>
		</em:updates>
	</Description>
</RDF>

Having a quick browse through the Gecko code, I can find the line emitting the warning but I have the em:updates property in my XML.

Chances are I’m missing something obvious. Has anyone got any ideas?

Not sure if I understand your issue. Do you have an unlisted legacy addon that is being ported to a webextension and want auto update to work? If so then check out my web extension manifest.json and updates.json.

Thank Andrei. That’s exactly it: I’ve got updates working using updates.json for my new web-extension build but I can’t get Firefox to automatically push people from the previous (non web-extension) version.

I was thinking it would be a case of updating the RDF the previous build was pointing at to reference my new web extension build but unfortunately that gives me the warning referenced above.

I see. Do you have the same UUID for both extensions?

Ah I am missing application.id from my manifest.json in the new buld, perhaps that could do it?

Yes… you must have it

“applications”: {
“gecko”: {
“id”: “{ec8030f7-c20a-464f-9b0e-13a3a9e97384}”,
“update_url”: “https://balbalba.guardian.com/updates.json
}
}

Dumb question: you are signing your unlisted addon, right? @mbarton

Also why is it unlisted and not on AMO? AMO addons don’t need a manual update system.

OK I’ll update the manifest and see how it goes. I am signing it using web-ext sign.

It’s historically been unlisted (created before my time). I don’t think we could submit to AMO since it requires a Guardian staff login to do anything useful making reviewing it difficult.

You should try submitting it to AMO. Worst case they deny it.

Is it possible to move from a self-hosted extension to AMO without getting users to re-install?

I tried adding the ID to the manifest but unfortunately I get the same error. I’m pretty sure it’s related to the old update RDF

1 Like

I think you are able to switch from unlisted to AMO (I am not an expert here).

Go to the Dev Hub obviously logged in. Then edit your unlisted addon and click upload a new version. There you have a section “How to Distribute this Version” and a little Change link. Click the link, select “On this site” and upload the new zip.

Make sure you have the same UUID, a new version and NO UPLDATE DATA. If you have anything related to the update system o unlisted addons it will throw an error.

Hope it works. :slight_smile:

In the end we just got users to upgrade manually and kept it unlisted for now.

Thanks for the help though Andrei!

1 Like

Sorry I could not help more. I’m pretty new to extensions and I only wrote WebExtensions. I never wrote legacy addons.