[GH-ISSUE #70] Trying to create a URL that is already bookmarked. #69

Closed
opened 2026-02-25 22:36:02 +03:00 by kerem · 10 comments
Owner

Originally created by @SomePoorBastard on GitHub (Apr 3, 2018).
Original GitHub issue: https://github.com/floccusaddon/floccus/issues/70

Software versions

  • Browser:
Google Chrome | 65.0.3325.181 (Official Build) (64-bit)
           -- | --
     Revision | dc3469be277cc962ba01d9c0cb5bb1a265676c36-refs/branch-heads/3325@{#725}
           OS | Linux
   JavaScript | V8 6.5.254.41
  • Nextcloud: 13.0.1
  • Nextcloud Bookmarks app: 0.11
  • Version has not changed since last report to nextcloud/bookmarks
  • Floccus: 2.0.5
  • Installed from release folder from github.

Steps to reproduce

  1. Start with two different directories with a variety of bookmarks in them on the browser side. At least one of those bookmarks between the two directories is a duplicate. The server bookmark structure and client bookmark structure should match.
  2. Remove the account from Floccus, then remove the current Floccus version from the browser.
  3. Move local bookmarks in a manner where the two directories are merged together.
  4. Reinstall Floccus. (In my case, it was from 2.0.2 to 2.0.5)
  5. Start the sync process.

Expected outcome

Expected that if a bookmark was already present on the server that that bookmark's information would be read { id, url, hash, etc... }, then updated locally
...

Actual outcome

I got a nice, pretty exception message :-)
...

Browser Log Trace

SERVERUPDATE Bookmarkdirty: truehashValue: 505180223id: 490localId: "787"path: "/Other bookmarks/Nextcloud (SomePoorBastard@https:\/\/nextcloud.example.com)"title: "Bookmark 1"url: "https://www.example.com/1"__proto__: Object BookmarkhashValue: 4238389446id: 490localId: "787"path: "/Other bookmarks/Nextcloud (SomePoorBastard@https:\/\/nextcloud.example.com)"title: "Bookmark 1"url: "https://www.example.com/1"__proto__: Object
Nextcloud.js:177 Fetching single bookmark Objecterror: nulllastSync: 1522721488796localRoot: "614"password: "$eCr3t"syncing: "initial"type: "nextcloud"url: "https://nextcloud.example.com"username: "SomePoorBastard"__proto__: Object
Account.js:233 SERVERUPDATE Bookmarkdirty: truehashValue: 1962405944id: 489localId: "762"path: "/Other bookmarks/Nextcloud (SomePoorBastard@https:\/\/nextcloud.example.com)"title: "Bookmark 2"url: "https://www.example.com/2"__proto__: Object BookmarkhashValue: 1174666737id: 489localId: "762"path: "/Other bookmarks/Nextcloud (SomePoorBastard@https:\/\/nextcloud.example.com)"title: "Bookmark 2"url: "https://www.example.com/2"__proto__: Object
Nextcloud.js:177 Fetching single bookmark Objecterror: nulllastSync: 1522721488796localRoot: "614"password: "$eCr3t"syncing: "initial"type: "nextcloud"url: "https://nextcloud.example.com"username: "SomePoorBastard"__proto__: Object
Account.js:249 Trying to create a URL that is already bookmarked. This shouldn't happen! Please tell the developer about this! url=https://medium.freecodecamp.org/
_callee15$ @ Account.js:249
Originally created by @SomePoorBastard on GitHub (Apr 3, 2018). Original GitHub issue: https://github.com/floccusaddon/floccus/issues/70 ### Software versions <!-- Please provide the versions of the following software products in your set up --> * Browser: ``` Google Chrome | 65.0.3325.181 (Official Build) (64-bit) -- | -- Revision | dc3469be277cc962ba01d9c0cb5bb1a265676c36-refs/branch-heads/3325@{#725} OS | Linux JavaScript | V8 6.5.254.41 ``` * Nextcloud: 13.0.1 * Nextcloud Bookmarks app: 0.11 - Version has not changed since last report to nextcloud/bookmarks * Floccus: 2.0.5 - Installed from release folder from github. ### Steps to reproduce <!-- What did you do? Be as specific as possible --> 1. Start with two different directories with a variety of bookmarks in them on the browser side. At least one of those bookmarks between the two directories is a duplicate. The server bookmark structure and client bookmark structure should match. 2. Remove the account from Floccus, then remove the current Floccus version from the browser. 3. Move local bookmarks in a manner where the two directories are merged together. 4. Reinstall Floccus. (In my case, it was from 2.0.2 to 2.0.5) 5. Start the sync process. ### Expected outcome <!-- What did you think was going to happen or what do you think should have happened? --> Expected that if a bookmark was already present on the server that that bookmark's information would be read { id, url, hash, etc... }, then updated locally ... ### Actual outcome <!-- What actually happened after you did the above steps? --> I got a nice, pretty exception message :-) ... ### Browser Log Trace ``` SERVERUPDATE Bookmarkdirty: truehashValue: 505180223id: 490localId: "787"path: "/Other bookmarks/Nextcloud (SomePoorBastard@https:\/\/nextcloud.example.com)"title: "Bookmark 1"url: "https://www.example.com/1"__proto__: Object BookmarkhashValue: 4238389446id: 490localId: "787"path: "/Other bookmarks/Nextcloud (SomePoorBastard@https:\/\/nextcloud.example.com)"title: "Bookmark 1"url: "https://www.example.com/1"__proto__: Object Nextcloud.js:177 Fetching single bookmark Objecterror: nulllastSync: 1522721488796localRoot: "614"password: "$eCr3t"syncing: "initial"type: "nextcloud"url: "https://nextcloud.example.com"username: "SomePoorBastard"__proto__: Object Account.js:233 SERVERUPDATE Bookmarkdirty: truehashValue: 1962405944id: 489localId: "762"path: "/Other bookmarks/Nextcloud (SomePoorBastard@https:\/\/nextcloud.example.com)"title: "Bookmark 2"url: "https://www.example.com/2"__proto__: Object BookmarkhashValue: 1174666737id: 489localId: "762"path: "/Other bookmarks/Nextcloud (SomePoorBastard@https:\/\/nextcloud.example.com)"title: "Bookmark 2"url: "https://www.example.com/2"__proto__: Object Nextcloud.js:177 Fetching single bookmark Objecterror: nulllastSync: 1522721488796localRoot: "614"password: "$eCr3t"syncing: "initial"type: "nextcloud"url: "https://nextcloud.example.com"username: "SomePoorBastard"__proto__: Object Account.js:249 Trying to create a URL that is already bookmarked. This shouldn't happen! Please tell the developer about this! url=https://medium.freecodecamp.org/ _callee15$ @ Account.js:249 ``` <!-- Thanks! Now, hit Submit and wait for a reply :) -->
Author
Owner

@marcelklehr commented on GitHub (Apr 3, 2018):

Is the bookmark that is about to be duplicated the same that had been involved in the SERVERUPDATE, or is it a random one?

<!-- gh-comment-id:378304554 --> @marcelklehr commented on GitHub (Apr 3, 2018): Is the bookmark that is about to be duplicated the same that had been involved in the SERVERUPDATE, or is it a random one?
Author
Owner

@SomePoorBastard commented on GitHub (Apr 3, 2018):

I'll have to check the logs again for that. I believe it was from the same site uri, but may have had a different query parameter at the end. Expect an update in a few hours.

<!-- gh-comment-id:378316332 --> @SomePoorBastard commented on GitHub (Apr 3, 2018): I'll have to check the logs again for that. I believe it was from the same site uri, but may have had a different query parameter at the end. Expect an update in a few hours.
Author
Owner

@SomePoorBastard commented on GitHub (Apr 3, 2018):

I've repeated the steps as is, and left the actual URL for one example of where the duplicate bookmarks are in play. I've tried to keep with the best understanding I have of the general sync "session", intact:

Account.js:73 initializing account 4093075635
Account.js:105 Starting sync process for account SomePoorBastard@https://nextcloud.example.com
Account.js:174 SERVERCREATE Bookmark {id: undefined, localId: "1103", url: "https://medium.freecodecamp.org/?gi=b65a2aca0461", title: "freeCodeCamp", path: "/", …}dirty: truehashValue: 2212169391id: 505localId: "1103"path: "/"title: "freeCodeCamp"url: "https://medium.freecodecamp.org/?gi=b65a2aca0461"__proto__: Object
Account.js:174 SERVERCREATE Bookmark {id: undefined, localId: "1110", url: "https://medium.freecodecamp.org/?gi=4ff70994e03c", title: "freeCodeCamp", path: "/Bookmarks bar", …}
Nextcloud.js:238 Response {type: "cors", url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark", redirected: false, status: 200, ok: true, …}
Account.js:174 SERVERCREATE Bookmark {id: undefined, localId: "1111", url: "https://medium.freecodecamp.org/?gi=fed21bf24804", title: "freeCodeCamp", path: "/Other bookmarks/Nextcloud (SomePoorBastard@https:\/\/nextcloud.example.com)", …}
Nextcloud.js:238 Response {type: "cors", url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark", redirected: false, status: 200, ok: true, …}
Nextcloud.js:123 Fetching bookmarks {error: null, lastSync: 1522726953036, localRoot: "1097", password: "$eCr3t", syncing: "initial", …}error: nulllastSync: 1522726953036localRoot: "1097"password: "$eCr3t"syncing: "initial"type: "nextcloud"url: "https://nextcloud.example.com"username: "SomePoorBastard"__proto__: constructor: ƒ Object()hasOwnProperty: ƒ hasOwnProperty()isPrototypeOf: ƒ isPrototypeOf()propertyIsEnumerable: ƒ propertyIsEnumerable()toLocaleString: ƒ toLocaleString()toString: ƒ toString()valueOf: ƒ valueOf()__defineGetter__: ƒ __defineGetter__()__defineSetter__: ƒ __defineSetter__()__lookupGetter__: ƒ __lookupGetter__()__lookupSetter__: ƒ __lookupSetter__()get __proto__: ƒ __proto__()set __proto__: ƒ __proto__()
Nextcloud.js:172 Received bookmarks from server (501) [Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, …][0 … 99][100 … 199][200 … 299][300 … 399][400 … 499]500: Bookmark {id: 237, localId: null, url: "<Redacted>", title: "<Redacted>", path: "/"}length: 501__proto__: Array(0)
Account.js:233 SERVERUPDATE Bookmark {id: 515, localId: "1583", url: "https://medium.freecodecamp.org/?gi=b65a2aca0461", title: "freeCodeCamp", path: "/", …}dirty: truehashValue: 2212169391id: 515localId: "1583"path: "/"title: "freeCodeCamp"url: "https://medium.freecodecamp.org/?gi=b65a2aca0461"__proto__: Object Bookmark {id: 515, localId: "1583", url: "https://medium.freecodecamp.org/?gi=1d4aac932856", title: "freeCodeCamp", path: "/", …}hashValue: 1001036335id: 515localId: "1583"path: "/"title: "freeCodeCamp"url: "https://medium.freecodecamp.org/?gi=1d4aac932856"__proto__: Objectconstructor: ƒ Bookmark(id, localId, url, title, path)hash: ƒ hash()__proto__: Object
Account.js:233 SERVERUPDATE Bookmark {id: 513, localId: "1582", url: "https://medium.freecodecamp.org/?gi=4ff70994e03c", title: "freeCodeCamp", path: "/Bookmarks bar", …} Bookmark {id: 513, localId: "1582", url: "https://medium.freecodecamp.org/?gi=26cb4cde3e0d", title: "freeCodeCamp", path: "/Bookmarks bar", …}
Nextcloud.js:177 Fetching single bookmark {error: null, lastSync: 1522726953036, localRoot: "1097", password: "$eCr3t", syncing: "initial", …}
Account.js:233 SERVERUPDATE Bookmark {id: 512, localId: "1578", url: "https://medium.freecodecamp.org/?gi=fed21bf24804", title: "freeCodeCamp", path: "/Other bookmarks/Nextcloud (SomePoorBastard@https:\/\/nextcloud.example.com)", …} Bookmark {id: 512, localId: "1578", url: "https://medium.freecodecamp.org/?gi=6a256f4d840", title: "freeCodeCamp", path: "/Other bookmarks/Nextcloud (SomePoorBastard@https:\/\/nextcloud.example.com)", …}
Nextcloud.js:177 Fetching single bookmark {error: null, lastSync: 1522726953036, localRoot: "1097", password: "$eCr3t", syncing: "initial", …}
Nextcloud.js:284 Response {type: "cors", url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark/510", redirected: false, status: 200, ok: true, …}body: (...)bodyUsed: trueheaders: Headers {}ok: trueredirected: falsestatus: 200statusText: "OK"type: "cors"url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark/510"__proto__: ResponsearrayBuffer: ƒ arrayBuffer()arguments: (...)caller: (...)length: 0name: "arrayBuffer"__proto__: ƒ ()[[Scopes]]: Scopes[0]blob: ƒ blob()arguments: (...)caller: (...)length: 0name: "blob"__proto__: ƒ ()[[Scopes]]: Scopes[0]body: (...)bodyUsed: (...)clone: ƒ clone()formData: ƒ formData()headers: (...)json: ƒ json()ok: (...)redirected: (...)status: (...)statusText: (...)text: ƒ text()type: (...)url: (...)constructor: ƒ Response()Symbol(Symbol.toStringTag): "Response"get body: ƒ ()get bodyUsed: ƒ ()get headers: ƒ ()get ok: ƒ ()get redirected: ƒ ()get status: ƒ ()get statusText: ƒ ()get type: ƒ ()get url: ƒ ()__proto__: Object
Account.js:249 Trying to create a URL that is already bookmarked. This shouldn't happen! Please tell the developer about this! url=https://medium.freecodecamp.org/?gi=b65a2aca0461
_callee15$ @ Account.js:249
tryCatch @ polyfill.js:6900
invoke @ polyfill.js:7138
prototype.(anonymous function) @ polyfill.js:6952
step @ Account.js:4
(anonymous) @ Account.js:4
(anonymous) @ Account.js:4
(anonymous) @ Account.js:213
(anonymous) @ index.js:30
(anonymous) @ index.js:7
__awaiter @ index.js:3
pool @ index.js:28
next @ index.js:119
task.then.more @ index.js:124
Promise.then (async)
next @ index.js:120
task.then.more @ index.js:124
Promise.then (async)
next @ index.js:120
task.then.more @ index.js:124
Promise.then (async)
next @ index.js:120
task.then.more @ index.js:124
Promise.then (async)
next @ index.js:120
Promise @ index.js:115
(anonymous) @ index.js:114
(anonymous) @ index.js:7
__awaiter @ index.js:3
pool @ index.js:110
(anonymous) @ index.js:28
(anonymous) @ index.js:7
__awaiter @ index.js:3
each @ index.js:24
_callee16$ @ Account.js:213
tryCatch @ polyfill.js:6900
invoke @ polyfill.js:7138
prototype.(anonymous function) @ polyfill.js:6952
step @ Account.js:4
(anonymous) @ Account.js:4
Promise.then (async)
step @ Account.js:4
(anonymous) @ Account.js:4
(anonymous) @ Account.js:4
sync_update @ background-script.js:5708
_callee8$ @ Account.js:129
tryCatch @ polyfill.js:6900
invoke @ polyfill.js:7138
prototype.(anonymous function) @ polyfill.js:6952
step @ Account.js:4
(anonymous) @ Account.js:4
Promise.then (async)
step @ Account.js:4
(anonymous) @ Account.js:4
Promise.then (async)
step @ Account.js:4
(anonymous) @ Account.js:4
Promise.then (async)
step @ Account.js:4
(anonymous) @ Account.js:4
Promise.then (async)
step @ Account.js:4
(anonymous) @ Account.js:4
Promise.then (async)
step @ Account.js:4
(anonymous) @ Account.js:4
Promise.then (async)
step @ Account.js:4
(anonymous) @ Account.js:4
Promise.then (async)
step @ Account.js:4
(anonymous) @ Account.js:4
Promise.then (async)
step @ Account.js:4
(anonymous) @ Account.js:4
Promise.then (async)
step @ Account.js:4
(anonymous) @ Account.js:4
(anonymous) @ Account.js:4
sync @ background-script.js:5323
(anonymous) @ background-script.js:125
Promise.then (async)
syncAccount @ background-script.js:123
Controller.window.syncAccount @ background-script.js:45
(anonymous) @ chrome-extension://djejpebekaoommcjfeaiipdikmdjkblg/dist/js/options.js:5184
Nextcloud.js:284 Response {type: "cors", url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark/509", redirected: false, status: 200, ok: true, …}
Nextcloud.js:284 Response {type: "cors", url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark/508", redirected: false, status: 200, ok: true, …}
Nextcloud.js:284 Response {type: "cors", url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark/507", redirected: false, status: 200, ok: true, …}
Nextcloud.js:284 Response {type: "cors", url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark/506", redirected: false, status: 200, ok: true, …}
Nextcloud.js:284 Response {type: "cors", url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark/505", redirected: false, status: 200, ok: true, …}
Nextcloud.js:284 Response {type: "cors", url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark/504", redirected: false, status: 200, ok: true, …}
Nextcloud.js:284 Response {type: "cors", url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark/503", redirected: false, status: 200, ok: true, …}
Nextcloud.js:284 Response {type: "cors", url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark/501", redirected: false, status: 200, ok: true, …}body: (...)bodyUsed: trueheaders: Headers {}ok: trueredirected: falsestatus: 200statusText: "OK"type: "cors"url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark/501"__proto__: Response
Nextcloud.js:284 Response {type: "cors", url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark/502", redirected: false, status: 200, ok: true, …}body: (...)bodyUsed: trueheaders: Headers {}ok: trueredirected: falsestatus: 200statusText: "OK"type: "cors"url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark/502"__proto__: Response
Account.js:137 MultiError: 1 errors
    at task.then.more (chrome-extension://djejpebekaoommcjfeaiipdikmdjkblg/dist/js/background-script.js:413:70)
Account.js:138 Syncing failed with Trying to create a URL that is already bookmarked. This shouldn't happen! Please tell the developer about this! url=https://medium.freecodecamp.org/?gi=b65a2aca0461
_callee8$ @ Account.js:138
tryCatch @ polyfill.js:6900
invoke @ polyfill.js:7138
prototype.(anonymous function) @ polyfill.js:6952
step @ Account.js:4
(anonymous) @ Account.js:4
Promise.then (async)
step @ Account.js:4
(anonymous) @ Account.js:4
Promise.then (async)
step @ Account.js:4
(anonymous) @ Account.js:4
Promise.then (async)
step @ Account.js:4
(anonymous) @ Account.js:4
Promise.then (async)
step @ Account.js:4
(anonymous) @ Account.js:4
Promise.then (async)
step @ Account.js:4
(anonymous) @ Account.js:4
Promise.then (async)
step @ Account.js:4
(anonymous) @ Account.js:4
Promise.then (async)
step @ Account.js:4
(anonymous) @ Account.js:4
Promise.then (async)
step @ Account.js:4
(anonymous) @ Account.js:4
Promise.then (async)
step @ Account.js:4
(anonymous) @ Account.js:4
Promise.then (async)
step @ Account.js:4
(anonymous) @ Account.js:4
(anonymous) @ Account.js:4
sync @ background-script.js:5323
(anonymous) @ background-script.js:125
Promise.then (async)
syncAccount @ background-script.js:123
Controller.window.syncAccount @ background-script.js:45
(anonymous) @ chrome-extension://djejpebekaoommcjfeaiipdikmdjkblg/dist/js/options.js:5184
<!-- gh-comment-id:378426843 --> @SomePoorBastard commented on GitHub (Apr 3, 2018): I've repeated the steps as is, and left the actual URL for one example of where the duplicate bookmarks are in play. I've tried to keep with the best understanding I have of the general sync "session", intact: ``` Account.js:73 initializing account 4093075635 Account.js:105 Starting sync process for account SomePoorBastard@https://nextcloud.example.com Account.js:174 SERVERCREATE Bookmark {id: undefined, localId: "1103", url: "https://medium.freecodecamp.org/?gi=b65a2aca0461", title: "freeCodeCamp", path: "/", …}dirty: truehashValue: 2212169391id: 505localId: "1103"path: "/"title: "freeCodeCamp"url: "https://medium.freecodecamp.org/?gi=b65a2aca0461"__proto__: Object Account.js:174 SERVERCREATE Bookmark {id: undefined, localId: "1110", url: "https://medium.freecodecamp.org/?gi=4ff70994e03c", title: "freeCodeCamp", path: "/Bookmarks bar", …} Nextcloud.js:238 Response {type: "cors", url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark", redirected: false, status: 200, ok: true, …} Account.js:174 SERVERCREATE Bookmark {id: undefined, localId: "1111", url: "https://medium.freecodecamp.org/?gi=fed21bf24804", title: "freeCodeCamp", path: "/Other bookmarks/Nextcloud (SomePoorBastard@https:\/\/nextcloud.example.com)", …} Nextcloud.js:238 Response {type: "cors", url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark", redirected: false, status: 200, ok: true, …} Nextcloud.js:123 Fetching bookmarks {error: null, lastSync: 1522726953036, localRoot: "1097", password: "$eCr3t", syncing: "initial", …}error: nulllastSync: 1522726953036localRoot: "1097"password: "$eCr3t"syncing: "initial"type: "nextcloud"url: "https://nextcloud.example.com"username: "SomePoorBastard"__proto__: constructor: ƒ Object()hasOwnProperty: ƒ hasOwnProperty()isPrototypeOf: ƒ isPrototypeOf()propertyIsEnumerable: ƒ propertyIsEnumerable()toLocaleString: ƒ toLocaleString()toString: ƒ toString()valueOf: ƒ valueOf()__defineGetter__: ƒ __defineGetter__()__defineSetter__: ƒ __defineSetter__()__lookupGetter__: ƒ __lookupGetter__()__lookupSetter__: ƒ __lookupSetter__()get __proto__: ƒ __proto__()set __proto__: ƒ __proto__() Nextcloud.js:172 Received bookmarks from server (501) [Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, Bookmark, …][0 … 99][100 … 199][200 … 299][300 … 399][400 … 499]500: Bookmark {id: 237, localId: null, url: "<Redacted>", title: "<Redacted>", path: "/"}length: 501__proto__: Array(0) Account.js:233 SERVERUPDATE Bookmark {id: 515, localId: "1583", url: "https://medium.freecodecamp.org/?gi=b65a2aca0461", title: "freeCodeCamp", path: "/", …}dirty: truehashValue: 2212169391id: 515localId: "1583"path: "/"title: "freeCodeCamp"url: "https://medium.freecodecamp.org/?gi=b65a2aca0461"__proto__: Object Bookmark {id: 515, localId: "1583", url: "https://medium.freecodecamp.org/?gi=1d4aac932856", title: "freeCodeCamp", path: "/", …}hashValue: 1001036335id: 515localId: "1583"path: "/"title: "freeCodeCamp"url: "https://medium.freecodecamp.org/?gi=1d4aac932856"__proto__: Objectconstructor: ƒ Bookmark(id, localId, url, title, path)hash: ƒ hash()__proto__: Object Account.js:233 SERVERUPDATE Bookmark {id: 513, localId: "1582", url: "https://medium.freecodecamp.org/?gi=4ff70994e03c", title: "freeCodeCamp", path: "/Bookmarks bar", …} Bookmark {id: 513, localId: "1582", url: "https://medium.freecodecamp.org/?gi=26cb4cde3e0d", title: "freeCodeCamp", path: "/Bookmarks bar", …} Nextcloud.js:177 Fetching single bookmark {error: null, lastSync: 1522726953036, localRoot: "1097", password: "$eCr3t", syncing: "initial", …} Account.js:233 SERVERUPDATE Bookmark {id: 512, localId: "1578", url: "https://medium.freecodecamp.org/?gi=fed21bf24804", title: "freeCodeCamp", path: "/Other bookmarks/Nextcloud (SomePoorBastard@https:\/\/nextcloud.example.com)", …} Bookmark {id: 512, localId: "1578", url: "https://medium.freecodecamp.org/?gi=6a256f4d840", title: "freeCodeCamp", path: "/Other bookmarks/Nextcloud (SomePoorBastard@https:\/\/nextcloud.example.com)", …} Nextcloud.js:177 Fetching single bookmark {error: null, lastSync: 1522726953036, localRoot: "1097", password: "$eCr3t", syncing: "initial", …} Nextcloud.js:284 Response {type: "cors", url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark/510", redirected: false, status: 200, ok: true, …}body: (...)bodyUsed: trueheaders: Headers {}ok: trueredirected: falsestatus: 200statusText: "OK"type: "cors"url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark/510"__proto__: ResponsearrayBuffer: ƒ arrayBuffer()arguments: (...)caller: (...)length: 0name: "arrayBuffer"__proto__: ƒ ()[[Scopes]]: Scopes[0]blob: ƒ blob()arguments: (...)caller: (...)length: 0name: "blob"__proto__: ƒ ()[[Scopes]]: Scopes[0]body: (...)bodyUsed: (...)clone: ƒ clone()formData: ƒ formData()headers: (...)json: ƒ json()ok: (...)redirected: (...)status: (...)statusText: (...)text: ƒ text()type: (...)url: (...)constructor: ƒ Response()Symbol(Symbol.toStringTag): "Response"get body: ƒ ()get bodyUsed: ƒ ()get headers: ƒ ()get ok: ƒ ()get redirected: ƒ ()get status: ƒ ()get statusText: ƒ ()get type: ƒ ()get url: ƒ ()__proto__: Object Account.js:249 Trying to create a URL that is already bookmarked. This shouldn't happen! Please tell the developer about this! url=https://medium.freecodecamp.org/?gi=b65a2aca0461 _callee15$ @ Account.js:249 tryCatch @ polyfill.js:6900 invoke @ polyfill.js:7138 prototype.(anonymous function) @ polyfill.js:6952 step @ Account.js:4 (anonymous) @ Account.js:4 (anonymous) @ Account.js:4 (anonymous) @ Account.js:213 (anonymous) @ index.js:30 (anonymous) @ index.js:7 __awaiter @ index.js:3 pool @ index.js:28 next @ index.js:119 task.then.more @ index.js:124 Promise.then (async) next @ index.js:120 task.then.more @ index.js:124 Promise.then (async) next @ index.js:120 task.then.more @ index.js:124 Promise.then (async) next @ index.js:120 task.then.more @ index.js:124 Promise.then (async) next @ index.js:120 Promise @ index.js:115 (anonymous) @ index.js:114 (anonymous) @ index.js:7 __awaiter @ index.js:3 pool @ index.js:110 (anonymous) @ index.js:28 (anonymous) @ index.js:7 __awaiter @ index.js:3 each @ index.js:24 _callee16$ @ Account.js:213 tryCatch @ polyfill.js:6900 invoke @ polyfill.js:7138 prototype.(anonymous function) @ polyfill.js:6952 step @ Account.js:4 (anonymous) @ Account.js:4 Promise.then (async) step @ Account.js:4 (anonymous) @ Account.js:4 (anonymous) @ Account.js:4 sync_update @ background-script.js:5708 _callee8$ @ Account.js:129 tryCatch @ polyfill.js:6900 invoke @ polyfill.js:7138 prototype.(anonymous function) @ polyfill.js:6952 step @ Account.js:4 (anonymous) @ Account.js:4 Promise.then (async) step @ Account.js:4 (anonymous) @ Account.js:4 Promise.then (async) step @ Account.js:4 (anonymous) @ Account.js:4 Promise.then (async) step @ Account.js:4 (anonymous) @ Account.js:4 Promise.then (async) step @ Account.js:4 (anonymous) @ Account.js:4 Promise.then (async) step @ Account.js:4 (anonymous) @ Account.js:4 Promise.then (async) step @ Account.js:4 (anonymous) @ Account.js:4 Promise.then (async) step @ Account.js:4 (anonymous) @ Account.js:4 Promise.then (async) step @ Account.js:4 (anonymous) @ Account.js:4 Promise.then (async) step @ Account.js:4 (anonymous) @ Account.js:4 (anonymous) @ Account.js:4 sync @ background-script.js:5323 (anonymous) @ background-script.js:125 Promise.then (async) syncAccount @ background-script.js:123 Controller.window.syncAccount @ background-script.js:45 (anonymous) @ chrome-extension://djejpebekaoommcjfeaiipdikmdjkblg/dist/js/options.js:5184 Nextcloud.js:284 Response {type: "cors", url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark/509", redirected: false, status: 200, ok: true, …} Nextcloud.js:284 Response {type: "cors", url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark/508", redirected: false, status: 200, ok: true, …} Nextcloud.js:284 Response {type: "cors", url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark/507", redirected: false, status: 200, ok: true, …} Nextcloud.js:284 Response {type: "cors", url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark/506", redirected: false, status: 200, ok: true, …} Nextcloud.js:284 Response {type: "cors", url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark/505", redirected: false, status: 200, ok: true, …} Nextcloud.js:284 Response {type: "cors", url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark/504", redirected: false, status: 200, ok: true, …} Nextcloud.js:284 Response {type: "cors", url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark/503", redirected: false, status: 200, ok: true, …} Nextcloud.js:284 Response {type: "cors", url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark/501", redirected: false, status: 200, ok: true, …}body: (...)bodyUsed: trueheaders: Headers {}ok: trueredirected: falsestatus: 200statusText: "OK"type: "cors"url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark/501"__proto__: Response Nextcloud.js:284 Response {type: "cors", url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark/502", redirected: false, status: 200, ok: true, …}body: (...)bodyUsed: trueheaders: Headers {}ok: trueredirected: falsestatus: 200statusText: "OK"type: "cors"url: "https://nextcloud.example.com/index.php/apps/bookmarks/public/rest/v2/bookmark/502"__proto__: Response Account.js:137 MultiError: 1 errors at task.then.more (chrome-extension://djejpebekaoommcjfeaiipdikmdjkblg/dist/js/background-script.js:413:70) Account.js:138 Syncing failed with Trying to create a URL that is already bookmarked. This shouldn't happen! Please tell the developer about this! url=https://medium.freecodecamp.org/?gi=b65a2aca0461 _callee8$ @ Account.js:138 tryCatch @ polyfill.js:6900 invoke @ polyfill.js:7138 prototype.(anonymous function) @ polyfill.js:6952 step @ Account.js:4 (anonymous) @ Account.js:4 Promise.then (async) step @ Account.js:4 (anonymous) @ Account.js:4 Promise.then (async) step @ Account.js:4 (anonymous) @ Account.js:4 Promise.then (async) step @ Account.js:4 (anonymous) @ Account.js:4 Promise.then (async) step @ Account.js:4 (anonymous) @ Account.js:4 Promise.then (async) step @ Account.js:4 (anonymous) @ Account.js:4 Promise.then (async) step @ Account.js:4 (anonymous) @ Account.js:4 Promise.then (async) step @ Account.js:4 (anonymous) @ Account.js:4 Promise.then (async) step @ Account.js:4 (anonymous) @ Account.js:4 Promise.then (async) step @ Account.js:4 (anonymous) @ Account.js:4 Promise.then (async) step @ Account.js:4 (anonymous) @ Account.js:4 (anonymous) @ Account.js:4 sync @ background-script.js:5323 (anonymous) @ background-script.js:125 Promise.then (async) syncAccount @ background-script.js:123 Controller.window.syncAccount @ background-script.js:45 (anonymous) @ chrome-extension://djejpebekaoommcjfeaiipdikmdjkblg/dist/js/options.js:5184 ```
Author
Owner

@marcelklehr commented on GitHub (Apr 6, 2018):

Is that a sync from scratch? If so the log would indicate that you have only 3 bookmarks in the sync folder, but 500 on the server. Is that correct?

<!-- gh-comment-id:379252756 --> @marcelklehr commented on GitHub (Apr 6, 2018): Is that a sync from scratch? If so the log would indicate that you have only 3 bookmarks in the sync folder, but 500 on the server. Is that correct?
Author
Owner

@SomePoorBastard commented on GitHub (Apr 7, 2018):

This was not a sync from scratch; I left the bookmark structure on the server and the client alone.

Bookmarks were already present on both sides; a dirty sync. In the session above, I removed the account in Floccus, removed the Floccus addon, then installed again. The account settings were set to (Server URL as [https://nextcloud.example.com] Username as [SomePoorBastard], Password as [$ecr3t], Sync Folder as "/").

I believe what happened is a previous Floccus install created a new root directory ["/"] if one did not exist, then begin synchronization. After synchronization, I removed Floccus, then made some modifications on the client side. Then, I reinstalled Floccus (2.0.5). I think Floccus used the existing directory folder and assumed it was empty, and then ran into errors.

To fix it, what I ended up doing at this point was the following:

  1. Turned off Floccus 2.0.5 in chrome://extensions
  2. Removed Floccus 2.0.5
  3. Downloaded Floccus 2.0.6 from https://github.com/marcelklehr/floccus/releases
  4. Moved all Bookmarks on Chrome manually to "Other bookmarks" folder.
  5. Manually de-duplicated bookmars by:
    5a. Sorting by name
    5b. Removing bookmarks which already have the same title as another bookmark (which will likely have the same URL as well)
    5c. Exported dedup'd bookmarks as backup. Note: No changes were made server side
  6. Installed Floccus 2.0.6
  7. Added account and clicked "Sync Now" with window open. Closed Window.
  8. Get report that says "All Good" with count-up for last synchronization.

The log for the synchronization steps above may be found here (for thirty days past 4/7/2018): https://pastebin.com/puBkKbYn

Then, I looked in chrome://bookmarks and saw this as my folder structure:

(Root Level)
Bookmarks Bar
    (Sync Folder)
    Nextcloud (SomePoorBastard@https://nextcloud.example.com)
        Bookmarks Bar
        Other bookmarks
            Nextcloud (SomePoorBastard@https://nextcloud.example.com)
(Root Level)
Other bookmarks

Before it was just:

Bookmarks Bar
Other Bookmarks

I have a feeling this is related to Issue #69, but am not positive. This was not the end state I wanted (as there were bookmarks scattered through each of the directories under Root>Bookmarks bar), so I blew away all the bookmarks on the server through the Bookmarks App UI, then imported them through the backup export I made previously.

<!-- gh-comment-id:379481485 --> @SomePoorBastard commented on GitHub (Apr 7, 2018): This was not a sync from scratch; I left the bookmark structure on the server and the client alone. Bookmarks were already present on both sides; a dirty sync. In the session above, I removed the account in Floccus, removed the Floccus addon, then installed again. The account settings were set to (Server URL as [https://nextcloud.example.com] Username as [SomePoorBastard], Password as [$ecr3t], Sync Folder as "/"). I believe what happened is a previous Floccus install created a new root directory ["/"] if one did not exist, then begin synchronization. After synchronization, I removed Floccus, then made some modifications on the client side. Then, I reinstalled Floccus (2.0.5). I think Floccus used the existing directory folder and assumed it was empty, and then ran into errors. To fix it, what I ended up doing at this point was the following: > 1. Turned off Floccus 2.0.5 in chrome://extensions > 2. Removed Floccus 2.0.5 > 3. Downloaded Floccus 2.0.6 from https://github.com/marcelklehr/floccus/releases > 4. Moved all Bookmarks on Chrome manually to "Other bookmarks" folder. > 5. Manually de-duplicated bookmars by: > 5a. Sorting by name > 5b. Removing bookmarks which already have the same title as another bookmark (which will likely have the same URL as well) > 5c. Exported dedup'd bookmarks as backup. Note: No changes were made server side > 6. Installed Floccus 2.0.6 > 7. Added account and clicked "Sync Now" with window open. Closed Window. > 8. Get report that says "All Good" with count-up for last synchronization. The log for the synchronization steps above may be found here (for thirty days past 4/7/2018): https://pastebin.com/puBkKbYn Then, I looked in chrome://bookmarks and saw this as my folder structure: ``` (Root Level) Bookmarks Bar (Sync Folder) Nextcloud (SomePoorBastard@https://nextcloud.example.com) Bookmarks Bar Other bookmarks Nextcloud (SomePoorBastard@https://nextcloud.example.com) (Root Level) Other bookmarks ``` Before it was just: ``` Bookmarks Bar Other Bookmarks ``` I have a feeling this is related to Issue #69, but am not positive. This was not the end state I wanted (as there were bookmarks scattered through each of the directories under Root>Bookmarks bar), so I blew away all the bookmarks on the server through the Bookmarks App UI, then imported them through the backup export I made previously.
Author
Owner

@marcelklehr commented on GitHub (Apr 7, 2018):

So, the end state you describe looks like you forgot to set the correct sync folder after reinstalling floccus, so it ended up creating a new folder for the new account (//Bookmarks bar/Nextcloud), where it created the directories that are on the server (e.g. //Bookmarks bar/Nextcloud ... /Bookmarks bar). You could try removing /Bookmarks bar/Nextcloud and setting the sync folder to //. If you happen to sync across different browsers this will make you run into #69, though.

EDIT: By syncing from scratch I mean the first sync for an account, when floccus has to setup everything. "I removed the account in Floccus, removed the Floccus addon, then installed again" sounds like a sync from scratch, which would mean that a folder with only 3 bookmarks was selected as the sync folder.

<!-- gh-comment-id:379502195 --> @marcelklehr commented on GitHub (Apr 7, 2018): So, the end state you describe looks like you forgot to set the correct sync folder after reinstalling floccus, so it ended up creating a new folder for the new account (//Bookmarks bar/Nextcloud), where it created the directories that are on the server (e.g. //Bookmarks bar/Nextcloud ... /Bookmarks bar). You could try removing /Bookmarks bar/Nextcloud and setting the sync folder to /<untitled root>/. If you happen to sync across different browsers this will make you run into #69, though. EDIT: By syncing from scratch I mean the first sync for an account, when floccus has to setup everything. "I removed the account in Floccus, removed the Floccus addon, then installed again" sounds like a sync from scratch, which would mean that a folder with only 3 bookmarks was selected as the sync folder.
Author
Owner

@SomePoorBastard commented on GitHub (Apr 8, 2018):

I would agree with your assessment above. I've switched between the default and explicitly configuring as / between upgrades/reinstalls enough that I don't recall making that folder change. Couple of questions before I would motion for a close.

  1. Is the root always marked as //? I've always set it as a / when I pay attention. Is this incorrect config?
  2. By different browsers, does this refer to:
    2a. Manufacturer (Microsoft, Apple, Google, Mozilla)
    2b. Versions within a manufacturer?
    2c. Different instances of the same version? On a different host or same host?

(Side note: I've began to favor Floccus on Chrome as I've felt and seen frustration with the way Firefox breaks for no apparent reason.)

<!-- gh-comment-id:379522127 --> @SomePoorBastard commented on GitHub (Apr 8, 2018): I would agree with your assessment above. I've switched between the default and explicitly configuring as / between upgrades/reinstalls enough that I don't recall making that folder change. Couple of questions before I would motion for a close. 1. Is the root always marked as //? I've always set it as a / when I pay attention. Is this incorrect config? 2. By different browsers, does this refer to: 2a. Manufacturer (Microsoft, Apple, Google, Mozilla) 2b. Versions within a manufacturer? 2c. Different instances of the same version? On a different host or same host? (Side note: I've began to favor Floccus on Chrome as I've felt and seen frustration with the way Firefox breaks for no apparent reason.)
Author
Owner

@marcelklehr commented on GitHub (Apr 8, 2018):

  1. As the root node is untitled its path becomes //, when the path is longer. It might be a good idea to normalize that into /. I just confirmed, that when you set the a folder there's no trailing slash, so it's / for the root folder (was confused there for a second). Internally the sync folder is not represented by a path, but by the folder id, so there's not much that can go wrong, when setting the folder using the picker. ;)
  2. I mainly meant browser vendors, but different versions might be tricky as well if they don't provide the same root folders, but that's not usually the case. So, same vendor, but different instances, hosts, planets should work.
<!-- gh-comment-id:379583038 --> @marcelklehr commented on GitHub (Apr 8, 2018): 1. As the root node is untitled its path becomes `//`, when the path is longer. It might be a good idea to normalize that into `/`. I just confirmed, that when you set the a folder there's no trailing slash, so it's `/` for the root folder (was confused there for a second). Internally the sync folder is not represented by a path, but by the folder id, so there's not much that can go wrong, when setting the folder using the picker. ;) 2. I mainly meant browser vendors, but different versions might be tricky as well if they don't provide the same root folders, but that's not usually the case. So, same vendor, but different instances, hosts, planets should work.
Author
Owner

@SomePoorBastard commented on GitHub (Apr 9, 2018):

Alright. I'll need to pay attention to the folder setup next time.

tldr; User should keep root folder setting consistent to avoid issues with upgrading and reinstalling.

<!-- gh-comment-id:379624045 --> @SomePoorBastard commented on GitHub (Apr 9, 2018): Alright. I'll need to pay attention to the folder setup next time. tldr; User should keep root folder setting consistent to avoid issues with upgrading and reinstalling.
Author
Owner

@github-actions[bot] commented on GitHub (Mar 21, 2023):

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

<!-- gh-comment-id:1478010579 --> @github-actions[bot] commented on GitHub (Mar 21, 2023): This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/floccus#69
No description provided.