obsidian-livesync icon indicating copy to clipboard operation
obsidian-livesync copied to clipboard

The request may have failed. The reason sent by the server: 404:

Open zedtools opened this issue 1 year ago β€’ 2 comments

Abstract

Since updating to 0.22.19, I have noticed an error The request may have failed. The reason sent by the server: 404: is logged multiple times when doing a sync.

Expected behaviour

  • No errors

Actually happened

  • 404 errors are logged

Reproducing procedure

  1. Obsidian synced up to date and using LiveSync.
  2. Close Obsidian.
  3. Using Docker couchdb:latest
  4. docker compose down
  5. docker compose up -d to recreate thezcontainer.
  6. Run Obsidian.
  7. Wait for replication to finish.
  8. Check the logs.

Report materials

Report from the LiveSync

For more information, please refer to Making the report.

Report from hatch
---- Obsidian info ----
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) obsidian/1.4.16 Chrome/114.0.5735.289 Electron/25.8.1 Safari/537.36
---- remote config ----
cors:
  credentials: "true"
  headers: accept, authorization, content-type, origin, referer
  max_age: "3600"
  methods: GET, PUT, POST, HEAD, DELETE
  origins: app://obsidian.md,capacitor://localhost,http://localhost
chttpd:
  bind_address: any
  max_http_request_size: "4294967296"
  port: "5984"
  require_valid_user: "true"
admins: 𝑅𝐸𝐷𝐴𝐢𝑇𝐸𝐷
vendor:
  name: The Apache Software Foundation
feature_flags:
  partitioned||*: "true"
chttpd_auth:
  authentication_redirect: /REDACTED/_utils/session.html
  hash_algorithms: sha256, sha
  require_valid_user: "true"
indexers:
  couch_mrview: "true"
prometheus:
  additional_port: "false"
  bind_address: 127.0.0.1
  port: "17986"
httpd:
  WWW-Authenticate: Basic realm="couchdb"
  bind_address: 127.0.0.1
  enable_cors: "true"
  port: "5986"
smoosh:
  state_dir: ./data
couch_httpd_auth:
  authentication_db: 𝑅𝐸𝐷𝐴𝐢𝑇𝐸𝐷
  secret: 𝑅𝐸𝐷𝐴𝐢𝑇𝐸𝐷
  authentication_redirect: 𝑅𝐸𝐷𝐴𝐢𝑇𝐸𝐷
couchdb_engines:
  couch: couch_bt_engine
couchdb:
  database_dir: ./data
  max_document_size: "50000000"
  single_node: "true"
  uuid: 𝑅𝐸𝐷𝐴𝐢𝑇𝐸𝐷
  view_index_dir: ./data

---- Plug-in config ---
version:0.22.19
couchDB_URI: self-hosted(HTTPS)
couchDB_USER: 𝑅𝐸𝐷𝐴𝐢𝑇𝐸𝐷
couchDB_PASSWORD: 𝑅𝐸𝐷𝐴𝐢𝑇𝐸𝐷
couchDB_DBNAME: 𝑅𝐸𝐷𝐴𝐢𝑇𝐸𝐷
liveSync: true
syncOnSave: false
syncOnStart: false
savingDelay: 200
lessInformationInLog: false
gcDelay: 0
versionUpFlash: ""
minimumChunkSize: 20
longLineThreshold: 250
showVerboseLog: true
suspendFileWatching: false
trashInsteadDelete: true
periodicReplication: false
periodicReplicationInterval: 60
syncOnFileOpen: false
encrypt: false
passphrase: 𝑅𝐸𝐷𝐴𝐢𝑇𝐸𝐷
usePathObfuscation: false
doNotDeleteFolder: false
resolveConflictsByNewerFile: false
batchSave: false
deviceAndVaultName: ""
usePluginSettings: false
showOwnPlugins: false
showStatusOnEditor: true
showStatusOnStatusbar: true
showOnlyIconsOnEditor: false
usePluginSync: false
autoSweepPlugins: false
autoSweepPluginsPeriodic: false
notifyPluginOrSettingUpdated: false
checkIntegrityOnSave: false
batch_size: 25
batches_limit: 25
useHistory: true
disableRequestURI: true
skipOlderFilesOnSync: true
checkConflictOnlyOnOpen: false
showMergeDialogOnlyOnActive: false
syncInternalFiles: false
syncInternalFilesBeforeReplication: false
syncInternalFilesIgnorePatterns: \/node_modules\/, \/\.git\/, \/obsidian-livesync\/
syncInternalFilesInterval: 60
additionalSuffixOfDatabaseName: 8b242be278c86c9b
ignoreVersionCheck: false
lastReadUpdates: 22
deleteMetadataOfDeletedFiles: false
syncIgnoreRegEx: ""
syncOnlyRegEx: ""
customChunkSize: 50
readChunksOnline: true
watchInternalFileChanges: true
automaticallyDeleteMetadataOfDeletedFiles: 0
disableMarkdownAutoMerge: false
writeDocumentsIfConflicted: false
useDynamicIterationCount: false
syncAfterMerge: false
configPassphraseStore: ""
encryptedPassphrase: 𝑅𝐸𝐷𝐴𝐢𝑇𝐸𝐷
encryptedCouchDBConnection: 𝑅𝐸𝐷𝐴𝐢𝑇𝐸𝐷
permitEmptyPassphrase: false
useIndexedDBAdapter: true
useTimeouts: false
writeLogToTheFile: false
doNotPaceReplication: false
hashCacheMaxCount: 300
hashCacheMaxAmount: 50
concurrencyOfReadChunksOnline: 30
minimumIntervalOfReadChunksOnline: 25
hashAlg: xxhash64
suspendParseReplicationResult: false
doNotSuspendOnFetching: false
useIgnoreFiles: false
ignoreFiles: .gitignore
syncOnEditorSave: false
pluginSyncExtendedSetting: {}
syncMaxSizeInMB: 50
settingSyncFile: ""
writeCredentialsForSettingSync: false
notifyAllSettingSyncFile: false
isConfigured: true
settingVersion: 0
enableCompression: false

Obsidian debug info

Plug-in log

We can see the log by tapping the Document box icon. If you noticed something suspicious, please let me know. Note: Please enable Verbose Log. For detail, refer to Logging, please.

Plug-in log
22/04/2024, 20:54:57->Cache initialized 300 / 250000000000
22/04/2024, 20:54:57->loading plugin
22/04/2024, 20:54:57->Self-hosted LiveSync v0.22.19 0.22.19 
22/04/2024, 20:54:57->xxhash for plugin initialised
22/04/2024, 20:54:57->Waiting for ready...
22/04/2024, 20:54:57->Cache initialized 10 / 1000000000
22/04/2024, 20:54:57->Cache initialized 300 / 50000000
22/04/2024, 20:54:57->Newer xxhash has been initialised
22/04/2024, 20:54:57->Opening Database...
22/04/2024, 20:54:57->Database info
22/04/2024, 20:54:57->{
  "doc_count": 8262,
  "update_seq": 8263,
  "db_name": "Obsidian-8b242be278c86c9b-livesync-v2-indexeddb",
  "auto_compaction": false,
  "adapter": "indexeddb"
}
22/04/2024, 20:54:57->Database is now ready.
22/04/2024, 20:54:58->Log window opened
22/04/2024, 20:54:58->Initialize and checking database files
22/04/2024, 20:54:58->Checking deleted files
22/04/2024, 20:54:58->Collecting local files on the storage
22/04/2024, 20:54:58->Collecting local files on the DB
22/04/2024, 20:55:01->Collecting local files on the DB: 25
22/04/2024, 20:55:01->Collecting local files on the DB: 50
22/04/2024, 20:55:01->Collecting local files on the DB: 75
22/04/2024, 20:55:01->Collecting local files on the DB: 100
22/04/2024, 20:55:01->Collecting local files on the DB: 125
22/04/2024, 20:55:01->Collecting local files on the DB: 150
22/04/2024, 20:55:01->Collecting local files on the DB: 175
22/04/2024, 20:55:01->Collecting local files on the DB: 200
22/04/2024, 20:55:01->Collecting local files on the DB: 225
22/04/2024, 20:55:01->Collecting local files on the DB: 250
22/04/2024, 20:55:01->Collecting local files on the DB: 275
22/04/2024, 20:55:01->Collecting local files on the DB: 300
22/04/2024, 20:55:01->Collecting local files on the DB: 325
22/04/2024, 20:55:01->Collecting local files on the DB: 350
22/04/2024, 20:55:01->Collecting local files on the DB: 375
22/04/2024, 20:55:01->Collecting local files on the DB: 400
22/04/2024, 20:55:01->Collecting local files on the DB: 425
22/04/2024, 20:55:01->Collecting local files on the DB: 450
22/04/2024, 20:55:01->Collecting local files on the DB: 475
22/04/2024, 20:55:01->Collecting local files on the DB: 500
22/04/2024, 20:55:01->Collecting local files on the DB: 525
22/04/2024, 20:55:01->Collecting local files on the DB: 550
22/04/2024, 20:55:01->Collecting local files on the DB: 575
22/04/2024, 20:55:01->Collecting local files on the DB: 600
22/04/2024, 20:55:01->Collecting local files on the DB: 625
22/04/2024, 20:55:01->Collecting local files on the DB: 650
22/04/2024, 20:55:01->Collecting local files on the DB: 675
22/04/2024, 20:55:01->Collecting local files on the DB: 700
22/04/2024, 20:55:01->Collecting local files on the DB: 725
22/04/2024, 20:55:01->Collecting local files on the DB: 750
22/04/2024, 20:55:01->Collecting local files on the DB: 775
22/04/2024, 20:55:01->Collecting local files on the DB: 800
22/04/2024, 20:55:01->Collecting local files on the DB: 825
22/04/2024, 20:55:01->Collecting local files on the DB: 850
22/04/2024, 20:55:01->Collecting local files on the DB: 875
22/04/2024, 20:55:01->Collecting local files on the DB: 900
22/04/2024, 20:55:01->Collecting local files on the DB: 925
22/04/2024, 20:55:01->Collecting local files on the DB: 950
22/04/2024, 20:55:01->Collecting local files on the DB: 975
22/04/2024, 20:55:01->Collecting local files on the DB: 1000
22/04/2024, 20:55:01->Collecting local files on the DB: 1025
22/04/2024, 20:55:01->Collecting local files on the DB: 1050
22/04/2024, 20:55:01->Collecting local files on the DB: 1075
22/04/2024, 20:55:01->Collecting local files on the DB: 1100
22/04/2024, 20:55:01->Collecting local files on the DB: 1125
22/04/2024, 20:55:01->Collecting local files on the DB: 1150
22/04/2024, 20:55:01->Collecting local files on the DB: 1175
22/04/2024, 20:55:01->Collecting local files on the DB: 1200
22/04/2024, 20:55:01->Collecting local files on the DB: 1225
22/04/2024, 20:55:01->Collecting local files on the DB: 1250
22/04/2024, 20:55:01->Collecting local files on the DB: 1275
22/04/2024, 20:55:01->Collecting local files on the DB: 1300
22/04/2024, 20:55:01->Collecting local files on the DB: 1325
22/04/2024, 20:55:01->Collecting local files on the DB: 1350
22/04/2024, 20:55:01->Collecting local files on the DB: 1375
22/04/2024, 20:55:01->Collecting local files on the DB: 1400
22/04/2024, 20:55:01->Collecting local files on the DB: 1425
22/04/2024, 20:55:01->Collecting local files on the DB: 1450
22/04/2024, 20:55:01->Collecting local files on the DB: 1475
22/04/2024, 20:55:01->Collecting local files on the DB: 1500
22/04/2024, 20:55:01->Collecting local files on the DB: 1525
22/04/2024, 20:55:01->Collecting local files on the DB: 1550
22/04/2024, 20:55:01->Collecting local files on the DB: 1575
22/04/2024, 20:55:01->Collecting local files on the DB: 1600
22/04/2024, 20:55:01->Collecting local files on the DB: 1625
22/04/2024, 20:55:01->Collecting local files on the DB: 1650
22/04/2024, 20:55:01->Collecting local files on the DB: 1675
22/04/2024, 20:55:01->Opening the key-value database
22/04/2024, 20:55:01->Updating database by new files
22/04/2024, 20:55:01->UPDATE DATABASE: Nothing to do
22/04/2024, 20:55:01->UPDATE STORAGE: Nothing to do
22/04/2024, 20:55:04->Initialized, NOW TRACKING!
22/04/2024, 20:55:04->Cache initialized 300 / 50000000
22/04/2024, 20:55:04->Modifying callback of the save command
22/04/2024, 20:55:04->Additional safety scan..
22/04/2024, 20:55:04->Before LiveSync, start OneShot once...
22/04/2024, 20:55:04->OneShot Sync begin... (pullOnly)
22/04/2024, 20:55:05->Replication activated
22/04/2024, 20:55:05->The request may have failed. The reason sent by the server: 404: 
22/04/2024, 20:55:05->{"error":"not_found","reason":"missing"}
22/04/2024, 20:55:05->There are no conflicted files
22/04/2024, 20:55:05->Additional safety scan done
22/04/2024, 20:55:09->Replication paused
22/04/2024, 20:55:09->Replication completed
22/04/2024, 20:55:09->LiveSync begin...
22/04/2024, 20:55:09->The request may have failed. The reason sent by the server: 404: 
22/04/2024, 20:55:09->{"error":"not_found","reason":"missing"}
22/04/2024, 20:55:09->Replication activated
22/04/2024, 20:55:09->The request may have failed. The reason sent by the server: 404: 
22/04/2024, 20:55:09->{"error":"not_found","reason":"missing"}
22/04/2024, 20:55:23->Replication paused

zedtools avatar Apr 22 '24 11:04 zedtools

Thank you for the complete report! I understand you have seen a few 404 errors, especially in the early phases.

These errors most likely indicate that the plug-in could not find information about the last sync point or previous connected devices. If they would not be seen after the subsequent synchronisation (in each device), they should be expected errors!

vrtmrz avatar May 09 '24 10:05 vrtmrz

Yes, it is fine after the first sync completes. It is just every time the Docker container is recreated that the 404 errors are logged.

I noticed the latest version (0.23.6) now displays {"error":"not_found","reason":"missing"} in the UI instead of a 404 error. If it is expected behaviour, maybe a more informative message that does not say "error" might be helpful... something like "recreating sync points" or whatever is actually going on.

Just a thought... otherwise others might report it as an error too.

zedtools avatar May 09 '24 10:05 zedtools