diff --git a/@packages/imessage/Sources/IMessageSync/BlobSyncManager.swift b/@packages/imessage/Sources/IMessageSync/BlobSyncManager.swift index d3134e5..30ea9c1 100644 --- a/@packages/imessage/Sources/IMessageSync/BlobSyncManager.swift +++ b/@packages/imessage/Sources/IMessageSync/BlobSyncManager.swift @@ -169,8 +169,19 @@ final class BlobSyncManager: @unchecked Sendable { private func uploadBlob(id: String, data: Data, contentType: String) async throws -> String { let path = "/client/imessage/attachments/\(id)/blob" - let responseData = try await apiClient.authenticatedMultipartUpload(path) { form in - form.append(data, withName: "blob", fileName: "blob", mimeType: contentType) + // Diagnostic: token presence at upload time + let tokenPresent = ((try? apiClient.getAuthToken()) ?? nil) != nil + log.info("BlobSyncManager: uploadBlob id=\(id) bytes=\(data.count) tokenPresent=\(tokenPresent)") + + let responseData: Data + do { + responseData = try await apiClient.authenticatedMultipartUpload(path) { form in + form.append(data, withName: "blob", fileName: "blob", mimeType: contentType) + } + } catch { + let ns = error as NSError + log.warning("BlobSyncManager: uploadBlob error id=\(id) domain=\(ns.domain) code=\(ns.code) desc=\(error.localizedDescription) full=\(String(describing: error))") + throw error } let json = JSON(responseData)