Closed AbNiks closed 5 months ago
Issue 3 Logs:- nitikaagarwal@Nitikas-MBP 2023 % immich upload --recursive --delete 01 █████████████████████░░░░░░░░░░░░░░░░░░░ | 53% | ETA: 3h35m | 11.9 GB/22.3 GB: /Volumes/abhinav/PhotoPrism/originals/2023/01/20230125_090450_BC1C9746.mp4
node:internal/process/promises:289
triggerUncaughtException(err, true / fromPromise /);
^
AxiosError: EBADF: bad file descriptor, close
at AxiosError.from (/Users/nitikaagarwal/.nvm/versions/node/v21.1.0/lib/node_modules/@immich/cli/node_modules/axios/dist/node/axios.cjs:837:14)
at ClientRequest.handleRequestError (/Users/nitikaagarwal/.nvm/versions/node/v21.1.0/lib/node_modules/@immich/cli/node_modules/axios/dist/node/axios.cjs:3087:25)
at ClientRequest.emit (node:events:515:28)
at Socket.socketErrorListener (node:_http_client:495:9)
at Socket.emit (node:events:515:28)
at emitErrorNT (node:internal/streams/destroy:151:8)
at emitErrorCloseNT (node:internal/streams/destroy:116:3)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
at Axios.request (/Users/nitikaagarwal/.nvm/versions/node/v21.1.0/lib/node_modules/@immich/cli/node_modules/axios/dist/node/axios.cjs:3877:41)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Upload.uploadAsset (/Users/nitikaagarwal/.nvm/versions/node/v21.1.0/lib/node_modules/@immich/cli/dist/src/commands/upload.js:155:21)
at async Upload.run (/Users/nitikaagarwal/.nvm/versions/node/v21.1.0/lib/node_modules/@immich/cli/dist/src/commands/upload.js:79:41)
at async Command.
[Symbol(kErroredValue)]: [Error]
},
_events: [Object: null prototype] {
error: [Function (anonymous)],
data: [Function: bound ]
},
_eventsCount: 2,
_maxListeners: undefined,
emit: [Function (anonymous)],
[Symbol(kFs)]: {
appendFile: [Function: appendFile],
appendFileSync: [Function: appendFileSync],
access: [Function: access],
accessSync: [Function: accessSync],
chown: [Function: chown],
chownSync: [Function: chownSync],
chmod: [Function: chmod],
chmodSync: [Function: chmodSync],
close: [Function: close],
closeSync: [Function: closeSync],
copyFile: [Function: copyFile],
copyFileSync: [Function: copyFileSync],
cp: [Function: cp],
cpSync: [Function: cpSync],
createReadStream: [Function: createReadStream],
createWriteStream: [Function: createWriteStream],
exists: [Function: exists],
existsSync: [Function: existsSync],
fchown: [Function: fchown],
fchownSync: [Function: fchownSync],
fchmod: [Function: fchmod],
fchmodSync: [Function: fchmodSync],
fdatasync: [Function: fdatasync],
fdatasyncSync: [Function: fdatasyncSync],
fstat: [Function: fstat],
fstatSync: [Function: fstatSync],
fsync: [Function: fsync],
fsyncSync: [Function: fsyncSync],
ftruncate: [Function: ftruncate],
ftruncateSync: [Function: ftruncateSync],
futimes: [Function: futimes],
futimesSync: [Function: futimesSync],
lchown: [Function: lchown],
lchownSync: [Function: lchownSync],
lchmod: [Function: lchmod],
lchmodSync: [Function: lchmodSync],
link: [Function: link],
linkSync: [Function: linkSync],
lstat: [Function: lstat],
lstatSync: [Function: lstatSync],
lutimes: [Function: lutimes],
lutimesSync: [Function: lutimesSync],
mkdir: [Function: mkdir],
mkdirSync: [Function: mkdirSync],
mkdtemp: [Function: mkdtemp],
mkdtempSync: [Function: mkdtempSync],
open: [Function: open],
openSync: [Function: openSync],
openAsBlob: [Function: openAsBlob],
readdir: [Function: readdir],
readdirSync: [Function: readdirSync],
read: [Function: read],
readSync: [Function: readSync],
readv: [Function: readv],
readvSync: [Function: readvSync],
readFile: [Function: readFile],
readFileSync: [Function: readFileSync],
readlink: [Function: readlink],
readlinkSync: [Function: readlinkSync],
realpath: [Function],
realpathSync: [Function],
rename: [Function: rename],
renameSync: [Function: renameSync],
rm: [Function: rm],
rmSync: [Function: rmSync],
rmdir: [Function: rmdir],
rmdirSync: [Function: rmdirSync],
stat: [Function: stat],
statfs: [Function: statfs],
statSync: [Function: statSync],
statfsSync: [Function: statfsSync],
symlink: [Function: symlink],
symlinkSync: [Function: symlinkSync],
truncate: [Function: truncate],
truncateSync: [Function: truncateSync],
unwatchFile: [Function: unwatchFile],
unlink: [Function: unlink],
unlinkSync: [Function: unlinkSync],
utimes: [Function: utimes],
utimesSync: [Function: utimesSync],
watch: [Function: watch],
watchFile: [Function: watchFile],
writeFile: [Function: writeFile],
writeFileSync: [Function: writeFileSync],
write: [Function: write],
writeSync: [Function: writeSync],
writev: [Function: writev],
writevSync: [Function: writevSync],
Dirent: [class Dirent],
Stats: [Function: Stats],
ReadStream: [Getter/Setter],
WriteStream: [Getter/Setter],
FileReadStream: [Getter/Setter],
FileWriteStream: [Getter/Setter],
_toUnixTimestamp: [Function: toUnixTimestamp],
Dir: [class Dir],
opendir: [Function: opendir],
opendirSync: [Function: opendirSync],
F_OK: 0,
R_OK: 4,
W_OK: 2,
X_OK: 1,
constants: [Object: null prototype],
promises: [Getter]
},
[Symbol(kIsPerformingIO)]: false,
[Symbol(kCapture)]: false
}
],
writable: false,
readable: true,
dataSize: 0,
maxDataSize: 2097152,
pauseStreams: true,
_released: true,
_streams: [],
_currentStream: null,
_insideLoop: false,
_pendingNext: false,
_boundary: '--------------------------062416673896096442523079',
_events: [Object: null prototype] {
end: [Function (anonymous)],
close: [Function (anonymous)]
},
_eventsCount: 2
}
}, request: <ref 1> ClientRequest { _events: [Object: null prototype] { response: [Function: bound onceWrapper] { listener: [Function: handleResponse] }, error: [Function: handleRequestError], socket: [Function: handleRequestSocket] }, _eventsCount: 3, _maxListeners: undefined, outputData: [], outputSize: 0, writable: true, destroyed: true, _last: false, chunkedEncoding: false, shouldKeepAlive: true, maxRequestsOnConnectionReached: false, _defaultKeepAlive: true, useChunkedEncodingByDefault: true, sendDate: false, _removedConnection: false, _removedContLen: false, _removedTE: false, strictContentLength: false, _contentLength: '258684777', _hasBody: true, _trailer: '', finished: true, _headerSent: true, _closed: false, _header: 'POST /api/asset/upload HTTP/1.1\r\n' + 'Accept: application/json, text/plain, /\r\n' + 'Content-Type: multipart/form-data; boundary=--------------------------062416673896096442523079\r\n' + 'x-api-key: hhFt9xANBIeyL9QVurHiGJowcfD1FmsWFpA23OqA\r\n' + 'User-Agent: axios/1.6.7\r\n' + 'Content-Length: 258684777\r\n' + 'Accept-Encoding: gzip, compress, deflate, br\r\n' + 'Host: localhost:2283\r\n' + 'Connection: keep-alive\r\n' + '\r\n', _keepAliveTimeout: 0, _onPendingData: [Function: nop], agent: Agent { _events: [Object: null prototype] { free: [Function (anonymous)], newListener: [Function: maybeEnableKeylog] }, _eventsCount: 2, _maxListeners: undefined, defaultPort: 80, protocol: 'http:', options: [Object: null prototype] { keepAlive: true, scheduling: 'lifo', timeout: 5000, noDelay: true, path: null }, requests: [Object: null prototype] {}, sockets: [Object: null prototype] { 'localhost:2283:': [ Socket { connecting: false, _hadError: true, _parent: null, _host: 'localhost', _closeAfterHandlingError: false, _readableState: [ReadableState], _events: [Object: null prototype], _eventsCount: 7, _maxListeners: undefined, _writableState: [WritableState], allowHalfOpen: false, _sockname: null, _pendingData: null, _pendingEncoding: '', server: null, _server: null, timeout: 5000, parser: null, _httpMessage: [Circular 1], autoSelectFamilyAttemptedAddresses: [Array],
[Symbol(kHandle)]: null,
[Symbol(lastWriteQueueSize)]: 0,
[Symbol(timeout)]: [Timeout],
[Symbol(kBuffer)]: null,
[Symbol(kBufferCb)]: null,
[Symbol(kBufferGen)]: null,
[Symbol(kCapture)]: false,
[Symbol(kSetNoDelay)]: true,
[Symbol(kSetKeepAlive)]: true,
[Symbol(kSetKeepAliveInitialDelay)]: 60,
[Symbol(kBytesRead)]: 349,
[Symbol(kBytesWritten)]: 258685610
}
]
},
freeSockets: [Object: null prototype] {},
keepAliveMsecs: 1000,
keepAlive: true,
maxSockets: Infinity,
maxFreeSockets: 256,
scheduling: 'lifo',
maxTotalSockets: Infinity,
totalSocketCount: 1,
[Symbol(kCapture)]: false
},
socketPath: undefined,
method: 'POST',
maxHeaderSize: undefined,
insecureHTTPParser: undefined,
joinDuplicateHeaders: undefined,
path: '/api/asset/upload',
_ended: false,
res: null,
aborted: false,
timeoutCb: [Function: emitRequestTimeout],
upgradeOrConnect: false,
parser: null,
maxHeadersCount: null,
reusedSocket: true,
host: 'localhost',
protocol: 'http:',
[Symbol(kCapture)]: false,
[Symbol(kBytesWritten)]: 0,
[Symbol(kNeedDrain)]: false,
[Symbol(corked)]: 0,
[Symbol(kChunkedBuffer)]: [],
[Symbol(kChunkedLength)]: 0,
[Symbol(kSocket)]: Socket {
connecting: false,
_hadError: true,
_parent: null,
_host: 'localhost',
_closeAfterHandlingError: false,
_readableState: ReadableState {
highWaterMark: 16384,
buffer: BufferList { head: null, tail: null, length: 0 },
length: 0,
pipes: [],
awaitDrainWriters: null,
[Symbol(kState)]: 60617816,
[Symbol(kErroredValue)]: [Error: EBADF: bad file descriptor, close] {
errno: -9,
code: 'EBADF',
syscall: 'close'
}
},
_events: [Object: null prototype] {
end: [Function: onReadableStreamEnd],
free: [Function: onFree],
close: [ [Function: onClose], [Function: socketCloseListener] ],
timeout: [Function: onTimeout],
agentRemove: [Function: onRemove],
error: [Function: socketErrorListener],
drain: [Function: ondrain]
},
_eventsCount: 7,
_maxListeners: undefined,
_writableState: WritableState {
highWaterMark: 16384,
length: 0,
corked: 0,
onwrite: [Function: bound onwrite],
writelen: 0,
bufferedIndex: 0,
pendingcb: 0,
[Symbol(kState)]: 36438996,
[Symbol(kBufferedValue)]: null,
[Symbol(kWriteCbValue)]: [Function (anonymous)],
[Symbol(kAfterWriteTickInfoValue)]: null,
[Symbol(kErroredValue)]: [Error: EBADF: bad file descriptor, close] {
errno: -9,
code: 'EBADF',
syscall: 'close'
}
},
allowHalfOpen: false,
_sockname: null,
_pendingData: null,
_pendingEncoding: '',
server: null,
_server: null,
timeout: 5000,
parser: null,
_httpMessage: [Circular *1],
autoSelectFamilyAttemptedAddresses: [ '::1:2283' ],
[Symbol(async_id_symbol)]: 1389824,
[Symbol(kHandle)]: null,
[Symbol(lastWriteQueueSize)]: 0,
[Symbol(timeout)]: Timeout {
_idleTimeout: -1,
_idlePrev: null,
_idleNext: null,
_idleStart: 12935134,
_onTimeout: null,
_timerArgs: undefined,
_repeat: null,
_destroyed: true,
[Symbol(refed)]: false,
[Symbol(kHasPrimitive)]: false,
[Symbol(asyncId)]: 1411342,
[Symbol(triggerId)]: 1411340
},
[Symbol(kBuffer)]: null,
[Symbol(kBufferCb)]: null,
[Symbol(kBufferGen)]: null,
[Symbol(kCapture)]: false,
[Symbol(kSetNoDelay)]: true,
[Symbol(kSetKeepAlive)]: true,
[Symbol(kSetKeepAliveInitialDelay)]: 60,
[Symbol(kBytesRead)]: 349,
[Symbol(kBytesWritten)]: 258685610
},
[Symbol(kOutHeaders)]: [Object: null prototype] {
accept: [ 'Accept', 'application/json, text/plain, */*' ],
'content-type': [
'Content-Type',
'multipart/form-data; boundary=--------------------------062416673896096442523079'
],
'x-api-key': [ 'x-api-key', 'hhFt9xANBIeyL9QVurHiGJowcfD1FmsWFpA23OqA' ],
'user-agent': [ 'User-Agent', 'axios/1.6.7' ],
'content-length': [ 'Content-Length', '258684777' ],
'accept-encoding': [ 'Accept-Encoding', 'gzip, compress, deflate, br' ],
host: [ 'Host', 'localhost:2283' ]
},
[Symbol(errored)]: null,
[Symbol(kHighWaterMark)]: 16384,
[Symbol(kRejectNonStandardBodyWrites)]: false,
[Symbol(kUniqueHeaders)]: null,
[Symbol(kError)]: [Error: EBADF: bad file descriptor, close] {
errno: -9,
code: 'EBADF',
syscall: 'close'
}
}, cause: [Error: EBADF: bad file descriptor, close] { errno: -9, code: 'EBADF', syscall: 'close' } }
This mostly seems to indicate server-side problems. Can you post the matching logs from immich-server? Also, please use code formatting to make the logs more readable.
Meet the same issue, upload failed with:
root@openmediavault:# immich upload --recursive .
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ | 0% | ETA: 0s | 0/740.6 MB: /srv/dev-disk-by-uuid-3e3a920e-9cb9-4cc6-9c7b-722002224697/pho
file:///root/.nvm/versions/node/v20.11.1/lib/node_modules/@immich/cli/dist/index.js:9775
throw new ResponseError(response, "Response returned an error code");
^
ResponseError: Response returned an error code
at AssetApi.request (file:///root/.nvm/versions/node/v20.11.1/lib/node_modules/@immich/cli/dist/index.js:9775:11)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async AssetApi.uploadFileRaw (file:///root/.nvm/versions/node/v20.11.1/lib/node_modules/@immich/cli/dist/index.js:13469:22)
at async AssetApi.uploadFile (file:///root/.nvm/versions/node/v20.11.1/lib/node_modules/@immich/cli/dist/index.js:13481:22)
at async UploadCommand.run (file:///root/.nvm/versions/node/v20.11.1/lib/node_modules/@immich/cli/dist/index.js:22389:30)
at async Command.<anonymous> (file:///root/.nvm/versions/node/v20.11.1/lib/node_modules/@immich/cli/dist/index.js:22454:3) {
response: Response {
[Symbol(realm)]: null,
[Symbol(state)]: {
aborted: false,
rangeRequested: false,
timingAllowPassed: true,
requestIncludesCredentials: true,
type: 'default',
status: 400,
timingInfo: {
startTime: 2634.559496,
redirectStartTime: 0,
redirectEndTime: 0,
postRedirectStartTime: 2634.559496,
finalServiceWorkerStartTime: 0,
finalNetworkResponseStartTime: 0,
finalNetworkRequestStartTime: 0,
endTime: 0,
encodedBodySize: 88,
decodedBodySize: 88,
finalConnectionTimingInfo: null
},
cacheState: '',
statusText: 'Bad Request',
headersList: HeadersList {
cookies: null,
[Symbol(headers map)]: Map(7) {
'x-powered-by' => { name: 'X-Powered-By', value: 'Express' },
'content-type' => {
name: 'Content-Type',
value: 'application/json; charset=utf-8'
},
'content-length' => { name: 'Content-Length', value: '88' },
'etag' => { name: 'ETag', value: '"58-5QQXk1t2mYvr0HnfqRVVS1X3EY8"' },
'date' => { name: 'Date', value: 'Mon, 11 Mar 2024 15:47:25 GMT' },
'connection' => { name: 'Connection', value: 'keep-alive' },
'keep-alive' => { name: 'Keep-Alive', value: 'timeout=5' }
},
[Symbol(headers map sorted)]: null
},
urlList: [ URL {} ],
body: {
stream: ReadableStream {
[Symbol(kType)]: 'ReadableStream',
[Symbol(kState)]: {
disturbed: false,
reader: undefined,
state: 'readable',
storedError: undefined,
stream: undefined,
transfer: [Object],
controller: [ReadableStreamDefaultController]
},
[Symbol(nodejs.webstream.isClosedPromise)]: {
promise: [Promise],
resolve: [Function (anonymous)],
reject: [Function (anonymous)]
},
[Symbol(nodejs.webstream.controllerErrorFunction)]: [Function: bound error]
}
}
},
[Symbol(headers)]: Headers {
[Symbol(headers list)]: HeadersList {
cookies: null,
[Symbol(headers map)]: Map(7) {
'x-powered-by' => { name: 'X-Powered-By', value: 'Express' },
'content-type' => {
name: 'Content-Type',
value: 'application/json; charset=utf-8'
},
'content-length' => { name: 'Content-Length', value: '88' },
'etag' => { name: 'ETag', value: '"58-5QQXk1t2mYvr0HnfqRVVS1X3EY8"' },
'date' => { name: 'Date', value: 'Mon, 11 Mar 2024 15:47:25 GMT' },
'connection' => { name: 'Connection', value: 'keep-alive' },
'keep-alive' => { name: 'Keep-Alive', value: 'timeout=5' }
},
[Symbol(headers map sorted)]: null
},
[Symbol(guard)]: 'immutable',
[Symbol(realm)]: null
}
}
}
Node.js v20.11.1
but server/microservices logs nothing even i change the loglevel to verbose
I'm having the same problem. I added the --dry-run variable before, which ran just fine. When I tried to actually upload it spat out a very similar error.
Even when trying to upload a single picture.
Same problem here. No matter whether it is 1 picture or several.
Can you try with the latest version (2.1.0) of the CLI?
Can you try with the latest version (2.1.0) of the CLI?
Works now with version 2.1.0! Thanks!
# immich upload --recursive .
Crawling for assets...
Checking assets | ████████████████████████████████████████ | 100% | ETA: 0s | 125/125 assets
Uploading assets | ████████████████████████████████████████ | 100% | ETA: 0s | 740.6 MB/740.6 MB
Successfully uploaded 125 assets (740.6 MB)
root@openmediavault:~#
Uploading right now. Looks promising.
It uploaded the pictures successfully. I did use the --album variable and while it did create the albums according to the folder the names, it didn't associate any pictures with them. Now all my albums are empty.
It is still not working for me with 2.1.0:
Crawling for assets...
Checking assets | ████████████████████████████████████████ | 100% | ETA: 0s | 1908/1908 assets
Uploading assets | ████████████████████████████████████████ | 100% | ETA: 0s | 236.2 MB/236.2 MB
Successfully uploaded 2 assets (236.2 MB)
Creating albums | ████████████████████████████████████████ | 100% | ETA: 0s | 1/1 albums
Adding assets to albums | ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ | 0% | ETA: 0s | 0/1908 assets
file:///Users/reypm/.nvm/versions/node/v20.10.0/lib/node_modules/@immich/cli/dist/index.js:9798
throw new y(e.status, e.data, e.headers);
^
y [Error]: Error: 500
at Object.l [as ok] (file:///Users/reypm/.nvm/versions/node/v20.10.0/lib/node_modules/@immich/cli/dist/index.js:9798:9)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async UploadCommand.updateAlbums (file:///Users/reypm/.nvm/versions/node/v20.10.0/lib/node_modules/@immich/cli/dist/index.js:18394:11)
at async UploadCommand.run (file:///Users/reypm/.nvm/versions/node/v20.10.0/lib/node_modules/@immich/cli/dist/index.js:18230:56)
at async Command.<anonymous> (file:///Users/reypm/.nvm/versions/node/v20.10.0/lib/node_modules/@immich/cli/dist/index.js:18501:3) {
status: 500,
data: {
message: 'Failed to add assets to album',
error: 'Internal Server Error',
statusCode: 500
},
headers: Headers {
[Symbol(headers list)]: HeadersList {
cookies: null,
[Symbol(headers map)]: Map(7) {
'x-powered-by' => { name: 'X-Powered-By', value: 'Express' },
'content-type' => {
name: 'Content-Type',
value: 'application/json; charset=utf-8'
},
'content-length' => { name: 'Content-Length', value: '92' },
'etag' => { name: 'ETag', value: '"5c-lyaVQAHBg1LfX0s5U5+HqLAWa+A"' },
'date' => { name: 'Date', value: 'Sat, 16 Mar 2024 10:58:33 GMT' },
'connection' => { name: 'Connection', value: 'keep-alive' },
'keep-alive' => { name: 'Keep-Alive', value: 'timeout=5' }
},
[Symbol(headers map sorted)]: null
},
[Symbol(guard)]: 'immutable',
[Symbol(realm)]: null
}
}
Do you think I should do anything extra besides removing the package and installing it back? 🤔
That indicates a serverside error, so it's probably a different issue and would need the server logs to troubleshoot.
@bo0tzz how do I get the server logs to open a new issue? I have logs enabled but not sure how to download them so I can attach it here
2024-03-15 23:33:14 [Nest] 7 - 03/15/2024, 8:33:14 PM LOG [CommunicationRepository] Initialized websocket server
2024-03-15 23:33:15 [Nest] 7 - 03/15/2024, 8:33:15 PM LOG [SystemConfigService] LogLevel=log (set via system config)
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [AppService] Feature Flags: {
2024-03-15 23:33:16 "smartSearch": true,
2024-03-15 23:33:16 "facialRecognition": true,
2024-03-15 23:33:16 "map": true,
2024-03-15 23:33:16 "reverseGeocoding": true,
2024-03-15 23:33:16 "sidecar": true,
2024-03-15 23:33:16 "search": true,
2024-03-15 23:33:16 "trash": true,
2024-03-15 23:33:16 "oauth": false,
2024-03-15 23:33:16 "oauthAutoLaunch": false,
2024-03-15 23:33:16 "passwordLogin": true,
2024-03-15 23:33:16 "configFile": false
2024-03-15 23:33:16 }
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [NestFactory] Starting Nest application...
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [InstanceLoader] TypeOrmModule dependencies initialized
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [InstanceLoader] BullModule dependencies initialized
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [InstanceLoader] ConfigHostModule dependencies initialized
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [InstanceLoader] DiscoveryModule dependencies initialized
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [InstanceLoader] ScheduleModule dependencies initialized
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [InstanceLoader] ConfigModule dependencies initialized
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [InstanceLoader] BullModule dependencies initialized
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [InstanceLoader] ScheduleModule dependencies initialized
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [InstanceLoader] BullModule dependencies initialized
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [InstanceLoader] TypeOrmCoreModule dependencies initialized
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [InstanceLoader] TypeOrmModule dependencies initialized
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [InstanceLoader] TypeOrmModule dependencies initialized
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [InstanceLoader] InfraModule dependencies initialized
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [InstanceLoader] DomainModule dependencies initialized
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [InstanceLoader] AppModule dependencies initialized
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RoutesResolver] ActivityController {/api/activity}:
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/activity, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/activity/statistics, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/activity, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/activity/:id, DELETE} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RoutesResolver] AssetsController {/api/assets}:
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/assets, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RoutesResolver] AssetController {/api/asset}:
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/asset/upload, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/asset/file/:id, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/asset/thumbnail/:id, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/asset/curated-objects, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/asset/curated-locations, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/asset/search-terms, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/asset, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/asset/exist, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/asset/bulk-upload-check, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RoutesResolver] AssetController {/api/asset}:
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/asset/map-marker, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/asset/memory-lane, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/asset/random, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/asset/device/:deviceId, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/asset/statistics, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/asset/time-buckets, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/asset/time-bucket, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/asset/jobs, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/asset, PUT} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/asset, DELETE} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/asset/stack/parent, PUT} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/asset/:id, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/asset/:id, PUT} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RoutesResolver] AppController {/api}:
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/.well-known/immich, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/custom.css, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RoutesResolver] AlbumController {/api/album}:
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/album/count, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/album, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/album, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/album/:id, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/album/:id, PATCH} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/album/:id, DELETE} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/album/:id/assets, PUT} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/album/:id/assets, DELETE} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/album/:id/users, PUT} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/album/:id/user/:userId, DELETE} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RoutesResolver] APIKeyController {/api/api-key}:
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/api-key, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/api-key, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/api-key/:id, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/api-key/:id, PUT} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/api-key/:id, DELETE} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RoutesResolver] AuditController {/api/audit}:
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/audit/deletes, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/audit/file-report, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/audit/file-report/checksum, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/audit/file-report/fix, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RoutesResolver] AuthController {/api/auth}:
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/auth/login, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/auth/admin-sign-up, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/auth/devices, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/auth/devices, DELETE} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/auth/devices/:id, DELETE} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/auth/validateToken, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/auth/change-password, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/auth/logout, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RoutesResolver] DownloadController {/api/download}:
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/download/info, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/download/archive, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/download/asset/:id, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RoutesResolver] FaceController {/api/face}:
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/face, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/face/:id, PUT} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RoutesResolver] JobController {/api/jobs}:
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/jobs, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/jobs/:id, PUT} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RoutesResolver] LibraryController {/api/library}:
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/library, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/library, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/library/:id, PUT} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/library/:id, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/library/:id/validate, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/library/:id, DELETE} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/library/:id/statistics, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/library/:id/scan, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/library/:id/removeOffline, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RoutesResolver] OAuthController {/api/oauth}:
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/oauth/mobile-redirect, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/oauth/authorize, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/oauth/callback, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/oauth/link, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/oauth/unlink, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RoutesResolver] PartnerController {/api/partner}:
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/partner, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/partner/:id, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/partner/:id, PUT} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/partner/:id, DELETE} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RoutesResolver] SearchController {/api/search}:
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/search, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/search/metadata, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/search/smart, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/search/explore, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/search/person, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/search/places, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/search/suggestions, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RoutesResolver] ServerInfoController {/api/server-info}:
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/server-info, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/server-info/ping, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/server-info/version, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/server-info/features, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/server-info/theme, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/server-info/config, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/server-info/statistics, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/server-info/media-types, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/server-info/admin-onboarding, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RoutesResolver] SharedLinkController {/api/shared-link}:
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/shared-link, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/shared-link/me, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/shared-link/:id, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/shared-link, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/shared-link/:id, PATCH} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/shared-link/:id, DELETE} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/shared-link/:id/assets, PUT} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/shared-link/:id/assets, DELETE} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RoutesResolver] SystemConfigController {/api/system-config}:
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/system-config, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/system-config/defaults, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/system-config, PUT} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/system-config/storage-template-options, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/system-config/map/style.json, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RoutesResolver] TagController {/api/tag}:
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/tag, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/tag, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/tag/:id, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/tag/:id, PATCH} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/tag/:id, DELETE} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/tag/:id/assets, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/tag/:id/assets, PUT} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/tag/:id/assets, DELETE} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RoutesResolver] TrashController {/api/trash}:
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/trash/empty, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/trash/restore, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/trash/restore/assets, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RoutesResolver] UserController {/api/user}:
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/user, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/user/info/:id, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/user/me, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/user, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/user/profile-image, DELETE} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/user/:id, DELETE} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/user/:id/restore, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/user, PUT} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/user/profile-image, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/user/profile-image/:id, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RoutesResolver] PersonController {/api/person}:
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/person, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/person, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/person, PUT} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/person/:id, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/person/:id, PUT} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/person/:id/statistics, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/person/:id/thumbnail, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/person/:id/assets, GET} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/person/:id/reassign, PUT} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [RouterExplorer] Mapped {/api/person/:id/merge, POST} route
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [NestApplication] Nest application successfully started
2024-03-15 23:33:16 [Nest] 7 - 03/15/2024, 8:33:16 PM LOG [ImmichServer] Immich Server is listening on http://[::1]:3001 [v1.98.2] [PRODUCTION]
2024-03-15 23:33:36 [Nest] 7 - 03/15/2024, 8:33:36 PM LOG [CommunicationRepository] Websocket Connect: J_uCDTH4JCu2P9vQAAAB
2024-03-15 23:33:49 [Nest] 7 - 03/15/2024, 8:33:49 PM LOG [SystemConfigService] LogLevel=log (set via system config)
2024-03-16 00:03:16 [Nest] 7 - 03/15/2024, 9:03:16 PM LOG [CommunicationRepository] Websocket Disconnect: J_uCDTH4JCu2P9vQAAAB
2024-03-16 00:03:17 [Nest] 7 - 03/15/2024, 9:03:17 PM LOG [CommunicationRepository] Websocket Connect: 1H8NS3xuHAgDR5LfAAAG
2024-03-16 00:03:28 [Nest] 7 - 03/15/2024, 9:03:28 PM LOG [CommunicationRepository] Websocket Disconnect: 1H8NS3xuHAgDR5LfAAAG
2024-03-16 00:03:29 [Nest] 7 - 03/15/2024, 9:03:29 PM LOG [CommunicationRepository] Websocket Connect: atDCbGY21fny2c66AAAI
2024-03-16 00:03:38 [Nest] 7 - 03/15/2024, 9:03:38 PM LOG [CommunicationRepository] Websocket Disconnect: atDCbGY21fny2c66AAAI
2024-03-16 00:03:38 [Nest] 7 - 03/15/2024, 9:03:38 PM LOG [CommunicationRepository] Websocket Connect: HILX1UZ5KMYNJFBKAAAK
2024-03-16 00:03:38 [Nest] 7 - 03/15/2024, 9:03:38 PM LOG [CommunicationRepository] Websocket Disconnect: HILX1UZ5KMYNJFBKAAAK
2024-03-16 00:03:39 [Nest] 7 - 03/15/2024, 9:03:39 PM LOG [CommunicationRepository] Websocket Connect: PynP4hMKKf4pVLTZAAAM
2024-03-16 00:03:40 [Nest] 7 - 03/15/2024, 9:03:40 PM LOG [CommunicationRepository] Websocket Disconnect: PynP4hMKKf4pVLTZAAAM
2024-03-16 00:03:40 [Nest] 7 - 03/15/2024, 9:03:40 PM LOG [CommunicationRepository] Websocket Connect: I1r0iAY4RziZfVueAAAO
2024-03-16 00:03:41 [Nest] 7 - 03/15/2024, 9:03:41 PM WARN [ExpressAdapter] Content-Type doesn't match Reply body, you might need a custom ExceptionFilter for non-JSON responses
2024-03-16 00:03:41 [Nest] 7 - 03/15/2024, 9:03:41 PM WARN [ExpressAdapter] Content-Type doesn't match Reply body, you might need a custom ExceptionFilter for non-JSON responses
2024-03-16 00:03:41 [Nest] 7 - 03/15/2024, 9:03:41 PM WARN [ExpressAdapter] Content-Type doesn't match Reply body, you might need a custom ExceptionFilter for non-JSON responses
2024-03-16 00:03:45 [Nest] 7 - 03/15/2024, 9:03:45 PM WARN [ExpressAdapter] Content-Type doesn't match Reply body, you might need a custom ExceptionFilter for non-JSON responses
2024-03-16 00:03:45 [Nest] 7 - 03/15/2024, 9:03:45 PM WARN [ExpressAdapter] Content-Type doesn't match Reply body, you might need a custom ExceptionFilter for non-JSON responses
2024-03-16 00:03:47 [Nest] 7 - 03/15/2024, 9:03:47 PM LOG [CommunicationRepository] Websocket Disconnect: I1r0iAY4RziZfVueAAAO
2024-03-16 00:03:47 [Nest] 7 - 03/15/2024, 9:03:47 PM LOG [CommunicationRepository] Websocket Connect: wsgbS3IOf-SCkZSvAAAQ
2024-03-16 00:03:50 [Nest] 7 - 03/15/2024, 9:03:50 PM LOG [CommunicationRepository] Websocket Disconnect: wsgbS3IOf-SCkZSvAAAQ
2024-03-16 00:03:50 [Nest] 7 - 03/15/2024, 9:03:50 PM LOG [CommunicationRepository] Websocket Connect: 8SiHMi2LIC5idaQWAAAS
2024-03-16 00:03:51 [Nest] 7 - 03/15/2024, 9:03:51 PM LOG [CommunicationRepository] Websocket Disconnect: 8SiHMi2LIC5idaQWAAAS
2024-03-16 00:03:51 [Nest] 7 - 03/15/2024, 9:03:51 PM LOG [CommunicationRepository] Websocket Connect: 0Y0-impFIH4tIFrJAAAU
2024-03-16 00:04:06 [Nest] 7 - 03/15/2024, 9:04:06 PM LOG [CommunicationRepository] Websocket Disconnect: 0Y0-impFIH4tIFrJAAAU
2024-03-16 00:04:06 [Nest] 7 - 03/15/2024, 9:04:06 PM LOG [CommunicationRepository] Websocket Connect: la7BPO3-iE34lKJmAAAW
2024-03-16 00:04:15 [Nest] 7 - 03/15/2024, 9:04:15 PM WARN [ExpressAdapter] Content-Type doesn't match Reply body, you might need a custom ExceptionFilter for non-JSON responses
2024-03-16 00:02:22 [Nest] 7 - 03/15/2024, 9:02:22 PM ERROR [Error: EIO: i/o error, mkdir 'upload/upload/01ccd6a6-464d-4481-bff8-7db976f017a2/2a/8d'
2024-03-16 00:02:22 at mkdirSync (node:fs:1380:26)
2024-03-16 00:02:22 at FilesystemProvider.mkdirSync (/usr/src/app/dist/infra/repositories/filesystem.provider.js:114:37)
2024-03-16 00:02:22 at AssetService.getUploadFolder (/usr/src/app/dist/domain/asset/asset.service.js:114:32)
2024-03-16 00:02:22 at /usr/src/app/dist/immich/interceptors/file-upload.interceptor.js:126:52
2024-03-16 00:02:22 at callbackify (/usr/src/app/dist/immich/interceptors/file-upload.interceptor.js:62:31)
2024-03-16 00:02:22 at FileUploadInterceptor.destination (/usr/src/app/dist/immich/interceptors/file-upload.interceptor.js:126:16)
2024-03-16 00:02:22 at DiskStorage._handleFile (/usr/src/app/node_modules/multer/storage/disk.js:31:8)
2024-03-16 00:02:22 at FileUploadInterceptor.handleFile (/usr/src/app/dist/immich/interceptors/file-upload.interceptor.js:136:29)
2024-03-16 00:02:22 at /usr/src/app/node_modules/multer/lib/make-middleware.js:137:17
2024-03-16 00:02:22 at callbackify (/usr/src/app/dist/immich/interceptors/file-upload.interceptor.js:62:16)] Failed to upload file
2024-03-16 00:02:22 [Nest] 7 - 03/15/2024, 9:02:22 PM ERROR [Error: EIO: i/o error, mkdir 'upload/upload/01ccd6a6-464d-4481-bff8-7db976f017a2/2a/8d'
2024-03-16 00:02:22 at mkdirSync (node:fs:1380:26)
2024-03-16 00:02:22 at FilesystemProvider.mkdirSync (/usr/src/app/dist/infra/repositories/filesystem.provider.js:114:37)
2024-03-16 00:02:22 at AssetService.getUploadFolder (/usr/src/app/dist/domain/asset/asset.service.js:114:32)
2024-03-16 00:02:22 at /usr/src/app/dist/immich/interceptors/file-upload.interceptor.js:126:52
2024-03-16 00:02:22 at callbackify (/usr/src/app/dist/immich/interceptors/file-upload.interceptor.js:62:31)
2024-03-16 00:02:22 at FileUploadInterceptor.destination (/usr/src/app/dist/immich/interceptors/file-upload.interceptor.js:126:16)
2024-03-16 00:02:22 at DiskStorage._handleFile (/usr/src/app/node_modules/multer/storage/disk.js:31:8)
2024-03-16 00:02:22 at FileUploadInterceptor.handleFile (/usr/src/app/dist/immich/interceptors/file-upload.interceptor.js:136:29)
2024-03-16 00:02:22 at /usr/src/app/node_modules/multer/lib/make-middleware.js:137:17
2024-03-16 00:02:22 at callbackify (/usr/src/app/dist/immich/interceptors/file-upload.interceptor.js:62:16)] Error: EIO: i/o error, mkdir 'upload/upload/01ccd6a6-464d-4481-bff8-7db976f017a2/2a/8d'
2024-03-16 00:02:22 [Nest] 7 - 03/15/2024, 9:02:22 PM ERROR [ExceptionsHandler] Connection terminated due to connection timeout
2024-03-16 00:02:22 Error: Connection terminated due to connection timeout
2024-03-16 00:02:22 at Connection.
The bug
Immich CLI(latest) upload works when uploading few files (usually around 5 GB) but when recursively iterating thru huge directory structure with huge GB of data being uploaded, Immich CLI(latest) fails usually due to one of the below reasons as stated below. When re-run, usually one of the below error comes. It difficult to upload every leaf structure of the directory. Can we have this tested for huge directory structure say of approx 1TB, with different types of files being uploaded pls? 1) Issue 1:- data: { message: 'Failed to upload file', error: 'Internal Server Error', statusCode: 500 } 2) Issue 2:- cause: Error: socket hang up at connResetException (node:internal/errors:787:14) at Socket.socketOnEnd (node:_http_client:519:23) at Socket.emit (node:events:527:35) at endReadableNT (node:internal/streams/readable:1589:12) at process.processTicksAndRejections (node:internal/process/task_queues:82:21) { code: 'ECONNRESET' 3) Issue 3:- cause: [Error: EBADF: bad file descriptor, close] { errno: -9, code: 'EBADF', syscall: 'close' } Stating log for issue 3 here due to character limitation:
Issue 3 Logs:- nitikaagarwal@Nitikas-MBP 2023 % immich upload --recursive --delete 01 █████████████████████░░░░░░░░░░░░░░░░░░░ | 53% | ETA: 3h35m | 11.9 GB/22.3 GB: /Volumes/abhinav/PhotoPrism/originals/2023/01/20230125_090450_BC1C9746.mp4
node:internal/process/promises:289 triggerUncaughtException(err, true / fromPromise /); ^ AxiosError: EBADF: bad file descriptor, close at AxiosError.from (/Users/nitikaagarwal/.nvm/versions/node/v21.1.0/lib/node_modules/@immich/cli/node_modules/axios/dist/node/axios.cjs:837:14) at ClientRequest.handleRequestError (/Users/nitikaagarwal/.nvm/versions/node/v21.1.0/lib/node_modules/@immich/cli/node_modules/axios/dist/node/axios.cjs:3087:25) at ClientRequest.emit (node:events:515:28) at Socket.socketErrorListener (node:_http_client:495:9) .......
}, cause: [Error: EBADF: bad file descriptor, close] { errno: -9, code: 'EBADF', syscall: 'close' } }
The OS that Immich Server is running on
Mac Sonoma 14.3.1 (23D60)
Version of Immich Server
v1.98.1
Version of Immich Mobile App
v1.97.0 build.141
Platform with the issue
Your docker-compose.yml content
Your .env content
Reproduction steps
Additional information
1) Issue 1 Logs:-
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ | 0% | ETA: 13h50m | 5.9 GB/627.0 GB: /Volumes/abhinav/Photos_1/Immich_1/library/thumbs/9f0e446a-99f8-44b2-bced-c0e13baf0251/2b/a8/2ba808ca
node:internal/process/promises:289 triggerUncaughtException(err, true / fromPromise /); ^ AxiosError: Request failed with status code 500 at settle (/Users/nitikaagarwal/.nvm/versions/node/v21.1.0/lib/node_modules/@immich/cli/node_modules/axios/dist/node/axios.cjs:1967:12) at IncomingMessage.handleStreamEnd (/Users/nitikaagarwal/.nvm/versions/node/v21.1.0/lib/node_modules/@immich/cli/node_modules/axios/dist/node/axios.cjs:3066:11) at IncomingMessage.emit (node:events:527:35) at endReadableNT (node:internal/streams/readable:1589:12) at process.processTicksAndRejections (node:internal/process/task_queues:82:21) at Axios.request (/Users/nitikaagarwal/.nvm/versions/node/v21.1.0/lib/node_modules/@immich/cli/node_modules/axios/dist/node/axios.cjs:3877:41) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async Upload.uploadAsset (/Users/nitikaagarwal/.nvm/versions/node/v21.1.0/lib/node_modules/@immich/cli/dist/src/commands/upload.js:155:21) at async Upload.run (/Users/nitikaagarwal/.nvm/versions/node/v21.1.0/lib/node_modules/@immich/cli/dist/src/commands/upload.js:79:41) at async Command. (/Users/nitikaagarwal/.nvm/versions/node/v21.1.0/lib/node_modules/@immich/cli/dist/src/index.js:43:5) {
code: 'ERR_BAD_RESPONSE',
config: {
transitional: {
silentJSONParsing: true,
forcedJSONParsing: true,
clarifyTimeoutError: false
},
adapter: [ 'xhr', 'http' ],
transformRequest: [ [Function: transformRequest] ],
transformResponse: [ [Function: transformResponse] ],
timeout: 0,
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: Infinity,
maxBodyLength: Infinity,
env: {
FormData: [Function: FormData] {
LINE_BREAK: '\r\n',
DEFAULT_CONTENT_TYPE: 'application/octet-stream'
},
Blob: [class Blob]
},
validateStatus: [Function: validateStatus],
headers: Object [AxiosHeaders] {
Accept: 'application/json, text/plain, /',
'Content-Type': 'multipart/form-data; boundary=--------------------------021651844378398580960649',
'x-api-key': 'hhFt9xANBIeyL9QVurHiGJowcfD1FmsWFpA23OqA',
'User-Agent': 'axios/1.6.7',
'Content-Length': '32660',
'Accept-Encoding': 'gzip, compress, deflate, br'
},
method: 'post',
maxRedirects: 0,
url: 'http://localhost:2283/api/asset/upload',
data: FormData {
_overheadLength: 741,
_valueLength: 103,
_valuesToMeasure: [
ReadStream {
fd: null,
path: '/Volumes/abhinav/Photos_1/Immich_1/library/thumbs/9f0e446a-99f8-44b2-bced-c0e13baf0251/2b/a8/2ba808ca-915e-4b1e-9d23-d25e3bda01e5.webp',
flags: 'r',
mode: 438,
start: undefined,
end: Infinity,
pos: undefined,
bytesRead: 31760,
_readableState: ReadableState {
highWaterMark: 65536,
buffer: [BufferList],
length: 0,
pipes: [],
awaitDrainWriters: null,
}, request: <ref 4> ClientRequest { _events: [Object: null prototype] { error: [Function: handleRequestError], socket: [Function: handleRequestSocket], finish: [Function: requestOnFinish] }, _eventsCount: 3, _maxListeners: undefined, outputData: [], outputSize: 0, writable: true, destroyed: true, _last: false, chunkedEncoding: false, shouldKeepAlive: true, maxRequestsOnConnectionReached: false, _defaultKeepAlive: true, useChunkedEncodingByDefault: true, sendDate: false, _removedConnection: false, _removedContLen: false, _removedTE: false, strictContentLength: false, _contentLength: '32660', _hasBody: true, _trailer: '', finished: true, _headerSent: true, _closed: true, _header: 'POST /api/asset/upload HTTP/1.1\r\n' + 'Accept: application/json, text/plain, /*\r\n' + 'Content-Type: multipart/form-data; boundary=--------------------------021651844378398580960649\r\n' + 'x-api-key: hhFt9xANBIeyL9QVurHiGJowcfD1FmsWFpA23OqA\r\n' + 'User-Agent: axios/1.6.7\r\n' + 'Content-Length: 32660\r\n' + 'Accept-Encoding: gzip, compress, deflate, br\r\n' + 'Host: localhost:2283\r\n' + 'Connection: keep-alive\r\n' + '\r\n', _keepAliveTimeout: 0, _onPendingData: [Function: nop], agent: Agent { _events: [Object: null prototype] { free: [Function (anonymous)], newListener: [Function: maybeEnableKeylog] }, _eventsCount: 2, _maxListeners: undefined, defaultPort: 80, protocol: 'http:', options: [Object: null prototype] { keepAlive: true, scheduling: 'lifo', timeout: 5000, noDelay: true, path: null }, requests: [Object: null prototype] {}, sockets: [Object: null prototype] {}, freeSockets: [Object: null prototype] { 'localhost:2283:': [ Socket { connecting: false, _hadError: false, _parent: null, _host: 'localhost', _closeAfterHandlingError: false, _readableState: [ReadableState], _events: [Object: null prototype], _eventsCount: 6, _maxListeners: undefined, _writableState: [WritableState], allowHalfOpen: false, _sockname: null, _pendingData: null, _pendingEncoding: '', server: null, _server: null, timeout: 5000, parser: null, _httpMessage: null, autoSelectFamilyAttemptedAddresses: [Array],
}, response: { status: 500, statusText: 'Internal Server Error', headers: Object [AxiosHeaders] { 'x-powered-by': 'Express', 'content-type': 'application/json; charset=utf-8', 'content-length': '84', etag: '"54-sQojqNZnpXrSuerOtcfoJmKKJXs"', date: 'Sun, 10 Mar 2024 14:57:14 GMT', connection: 'keep-alive', 'keep-alive': 'timeout=5' }, config: { transitional: { silentJSONParsing: true, forcedJSONParsing: true, clarifyTimeoutError: false }, adapter: [ 'xhr', 'http' ], transformRequest: [ [Function: transformRequest] ], transformResponse: [ [Function: transformResponse] ], timeout: 0, xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN', maxContentLength: Infinity, maxBodyLength: Infinity, env: { FormData: [Function: FormData] { LINE_BREAK: '\r\n', DEFAULT_CONTENT_TYPE: 'application/octet-stream' }, Blob: [class Blob] }, validateStatus: [Function: validateStatus], headers: Object [AxiosHeaders] { Accept: 'application/json, text/plain, /', 'Content-Type': 'multipart/form-data; boundary=--------------------------021651844378398580960649', 'x-api-key': 'hhFt9xANBIeyL9QVurHiGJowcfD1FmsWFpA23OqA', 'User-Agent': 'axios/1.6.7', 'Content-Length': '32660', 'Accept-Encoding': 'gzip, compress, deflate, br' }, method: 'post', maxRedirects: 0, url: 'http://localhost:2283/api/asset/upload', data: FormData { _overheadLength: 741, _valueLength: 103, _valuesToMeasure: [ ReadStream { fd: null, path: '/Volumes/abhinav/Photos_1/Immich_1/library/thumbs/9f0e446a-99f8-44b2-bced-c0e13baf0251/2b/a8/2ba808ca-915e-4b1e-9d23-d25e3bda01e5.webp', flags: 'r', mode: 438, start: undefined, end: Infinity, pos: undefined, bytesRead: 31760, _readableState: [ReadableState], _events: [Object: null prototype], _eventsCount: 2, _maxListeners: undefined, emit: [Function (anonymous)],
} }
2) Issue 2 Logs:
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ | 0% | ETA: 12h60m | 4.3 GB/627.0 GB: /Volumes/abhinav/Photos_1/Immich_1/library/thumbs/9f0e446a-99f8-44b2-bced-c0e13baf0251/2170cf54-f1fc-
node:internal/process/promises:289 triggerUncaughtException(err, true / fromPromise /); ^ AxiosError: socket hang up at AxiosError.from (/Users/nitikaagarwal/.nvm/versions/node/v21.1.0/lib/node_modules/@immich/cli/node_modules/axios/dist/node/axios.cjs:837:14) at RedirectableRequest.handleRequestError (/Users/nitikaagarwal/.nvm/versions/node/v21.1.0/lib/node_modules/@immich/cli/node_modules/axios/dist/node/axios.cjs:3087:25) at RedirectableRequest.emit (node:events:515:28) at eventHandlers. (/Users/nitikaagarwal/.nvm/versions/node/v21.1.0/lib/node_modules/@immich/cli/node_modules/follow-redirects/index.js:38:24)
at ClientRequest.emit (node:events:515:28)
at Socket.socketOnEnd (node:_http_client:519:9)
at Socket.emit (node:events:527:35)
at endReadableNT (node:internal/streams/readable:1589:12)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
at Axios.request (/Users/nitikaagarwal/.nvm/versions/node/v21.1.0/lib/node_modules/@immich/cli/node_modules/axios/dist/node/axios.cjs:3877:41)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Upload.run (/Users/nitikaagarwal/.nvm/versions/node/v21.1.0/lib/node_modules/@immich/cli/dist/src/commands/upload.js:65:43)
at async Command. (/Users/nitikaagarwal/.nvm/versions/node/v21.1.0/lib/node_modules/@immich/cli/dist/src/index.js:43:5) {
code: 'ECONNRESET',
config: {
transitional: {
silentJSONParsing: true,
forcedJSONParsing: true,
clarifyTimeoutError: false
},
adapter: [ 'xhr', 'http' ],
transformRequest: [ [Function: transformRequest] ],
transformResponse: [ [Function: transformResponse] ],
timeout: 0,
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
maxBodyLength: -1,
env: {
FormData: [Function: FormData] {
LINE_BREAK: '\r\n',
DEFAULT_CONTENT_TYPE: 'application/octet-stream'
},
Blob: [class Blob]
},
validateStatus: [Function: validateStatus],
headers: Object [AxiosHeaders] {
Accept: 'application/json, text/plain, /',
'Content-Type': 'application/json',
'x-api-key': 'hhFt9xANBIeyL9QVurHiGJowcfD1FmsWFpA23OqA',
'User-Agent': 'axios/1.6.7',
'Content-Length': '204',
'Accept-Encoding': 'gzip, compress, deflate, br'
},
method: 'post',
data: '{"assets":[{"id":"/Volumes/abhinav/Photos_1/Immich_1/library/thumbs/9f0e446a-99f8-44b2-bced-c0e13baf0251/2170cf54-f1fc-4cd3-ae96-545a32cfd6fa.jpeg","checksum":"746aef08137c4d1ff46ce12eb8d2ae998460aa1d"}]}',
url: 'http://localhost:2283/api/asset/bulk-upload-check'
},
request: <ref *1> Writable {
_writableState: WritableState {
highWaterMark: 16384,
length: 0,
corked: 0,
onwrite: [Function: bound onwrite],
writelen: 0,
bufferedIndex: 0,
pendingcb: 0,
}, cause: Error: socket hang up at connResetException (node:internal/errors:787:14) at Socket.socketOnEnd (node:_http_client:519:23) at Socket.emit (node:events:527:35) at endReadableNT (node:internal/streams/readable:1589:12) at process.processTicksAndRejections (node:internal/process/task_queues:82:21) { code: 'ECONNRESET' } }