mozilla-services / syncserver

Run-Your-Own Firefox Sync Server
Mozilla Public License 2.0
1.87k stars 145 forks source link

creditcards component not available #258

Closed BobVul closed 4 years ago

BobVul commented 4 years ago

I'm seeing errors from the creditcards engine, even if I disable it.

Is there any way to prevent these errors? I'm happy to fully disable this engine (on either the client or server), but even that causes errors.


With creditcards enabled (default):

1604296211332   Sync.Status DEBUG   Status for engine creditcards: error.engine.reason.unknown_fail
1604296211332   Sync.Status DEBUG   Status.service: success.status_ok => error.sync.failed_partial
1604296211332   Sync.ErrorHandler   DEBUG   creditcards failed: [Exception... "Component is not available"  nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"  location: "JS frame :: resource://formautofill/FormAutofillSync.jsm :: get storage :: line 95"  data: no] Stack trace: get storage()@resource://formautofill/FormAutofillSync.jsm:95
trackRemainingChanges()@resource://formautofill/FormAutofillSync.jsm:308
_syncCleanup()@resource://services-sync/engines.js:2001
_sync()@resource://services-sync/engines.js:2030
[...]
1604296211342   Sync.ErrorHandler   ERROR   Some engines did not sync correctly.

With creditcards disabled via preferences:

1604296281231   Sync.Resource   DEBUG   DELETE success 200 https://ffsync.example.com/storage/1.5/1/storage/creditcards
1604296281232   Sync.Synchronizer   DEBUG   Updating enabled engines failed: [Exception... "Component is not available"  nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"  location: "JS frame :: resource://formautofill/FormAutofillSync.jsm :: _resetClient :: line 316"  data: no] Stack trace: _resetClient()@resource://formautofill/FormAutofillSync.jsm:316
wipeServer()@resource://services-sync/engines.js:2071
1604296281232   Sync.ErrorHandler   ERROR   Sync encountered an error: [Exception... "Component is not available"  nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"  location: "JS frame :: resource://formautofill/FormAutofillSync.jsm :: _resetClient :: line 316"  data: no] Stack trace: _resetClient()@resource://formautofill/FormAutofillSync.jsm:316
mhammond commented 4 years ago

It's probably possible to get into this state by manually disabling credit-card support in Firefox, but leaving it enabled in sync. Setting services.sync.engine.creditcards and services.sync.engine.creditcards.available to false should fix this.

BobVul commented 4 years ago

Thanks for the response.

I also had to remove services.sync.engineStatusChanged.creditcards (/set it to false) otherwise it kept trying (and failing) to update enabled engines.

To be honest, I mostly care because it's been causing about:sync to constantly report errors. Seems like it doesn't affect anything else syncing, thankfully. It's good to have that cleared, though!

Should I leave this issue open to track actual support for creditcards? I'm personally happy with just disabling it and leaving it at that.

BobVul commented 4 years ago

Hm. services.sync.engine.creditcards keeps getting reset to true...

mhammond commented 4 years ago

Hm. services.sync.engine.creditcards keeps getting reset to true...

That's probably OK so long as .available remains false. I don't think we need this open for now, but feel free to reopen or ping me if you have more issues.

[edit: s/true/false/]