The request may have failed. The reason sent by the server: 404:
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
- Obsidian synced up to date and using LiveSync.
- Close Obsidian.
- Using Docker couchdb:latest
docker compose downdocker compose up -dto recreate thezcontainer.- Run Obsidian.
- Wait for replication to finish.
- 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
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!
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.