diff --git a/Core/src/com/basistech/df/cybertriage/autopsy/ctapi/CTApiDAO.java b/Core/src/com/basistech/df/cybertriage/autopsy/ctapi/CTApiDAO.java
index b8883df4b2ca3e9f13e142b3c89e8fb052426b5a..c358feec61a460b49c71addeeb741237198a26f6 100644
--- a/Core/src/com/basistech/df/cybertriage/autopsy/ctapi/CTApiDAO.java
+++ b/Core/src/com/basistech/df/cybertriage/autopsy/ctapi/CTApiDAO.java
@@ -96,7 +96,7 @@ public void uploadFile(String url, String fileName, InputStream fileIs) throws C
     }
     
     public void uploadMeta(AuthenticatedRequestData authenticatedRequestData, MetadataUploadRequest metaRequest) throws CTCloudException {
-        httpClient.doPost(AUTH_TOKEN_REQUEST_PATH, getAuthParams(authenticatedRequestData), metaRequest, null);
+        httpClient.doPost(CTCLOUD_UPLOAD_FILE_METADATA_PATH, getAuthParams(authenticatedRequestData), metaRequest, null);
     }
 
     private static Map<String, String> getAuthParams(AuthenticatedRequestData authenticatedRequestData) {
diff --git a/Core/src/com/basistech/df/cybertriage/autopsy/ctapi/json/MetadataUploadRequest.java b/Core/src/com/basistech/df/cybertriage/autopsy/ctapi/json/MetadataUploadRequest.java
index 57d59c3faa29e58b226f6bdc29a63e613eb6f94b..7d7e1e7f6473e7f405368fa1f6671d72806f71a9 100644
--- a/Core/src/com/basistech/df/cybertriage/autopsy/ctapi/json/MetadataUploadRequest.java
+++ b/Core/src/com/basistech/df/cybertriage/autopsy/ctapi/json/MetadataUploadRequest.java
@@ -38,10 +38,10 @@ public class MetadataUploadRequest {
     private String filePath;
 
     @JsonProperty("fileSize")
-    private long fileSizeBytes;
+    private Long fileSizeBytes;
 
     @JsonProperty("createdDate")
-    private long createdDate;
+    private Long createdDate;
 
     public String getFileUploadUrl() {
         return fileUploadUrl;
@@ -88,20 +88,20 @@ public MetadataUploadRequest setFilePath(String filePath) {
         return this;
     }
 
-    public long getFileSizeBytes() {
+    public Long getFileSizeBytes() {
         return fileSizeBytes;
     }
 
-    public MetadataUploadRequest setFileSizeBytes(long fileSizeBytes) {
+    public MetadataUploadRequest setFileSizeBytes(Long fileSizeBytes) {
         this.fileSizeBytes = fileSizeBytes;
         return this;
     }
 
-    public long getCreatedDate() {
+    public Long getCreatedDate() {
         return createdDate;
     }
 
-    public MetadataUploadRequest setCreatedDate(long createdDate) {
+    public MetadataUploadRequest setCreatedDate(Long createdDate) {
         this.createdDate = createdDate;
         return this;
     }
diff --git a/Core/src/com/basistech/df/cybertriage/autopsy/malwarescan/MalwareScanIngestModule.java b/Core/src/com/basistech/df/cybertriage/autopsy/malwarescan/MalwareScanIngestModule.java
index dc54656a15914cda458236758e0f722bb9d5818f..56bfde735610b41a63fdc73e3b9d579a2ec39dfd 100644
--- a/Core/src/com/basistech/df/cybertriage/autopsy/malwarescan/MalwareScanIngestModule.java
+++ b/Core/src/com/basistech/df/cybertriage/autopsy/malwarescan/MalwareScanIngestModule.java
@@ -462,7 +462,7 @@ private void handleNonFoundResults(IngestJobState ingestJobState, Map<String, Li
                     }
 
                     if (performFileUpload) {
-                        uploadFile(ingestJobState, correspondingObjIds.get(0));
+                        uploadFile(ingestJobState, sanitizedMd5, correspondingObjIds.get(0));
                     }
 
                     ingestJobState.getUnidentifiedHashes().put(sanitizedMd5, correspondingObjIds);
@@ -539,7 +539,7 @@ private static boolean isUploadable(AbstractFile af) {
          * @throws CTCloudException
          * @throws TskCoreException
          */
-        private boolean uploadFile(IngestJobState ingestJobState, long objId) throws CTCloudException, TskCoreException {
+        private boolean uploadFile(IngestJobState ingestJobState, String md5, long objId) throws CTCloudException, TskCoreException {
             if (!ingestJobState.isUploadUnknownFiles() || ingestJobState.getIngestJobContext().fileIngestIsCancelled()) {
                 return false;
             }
@@ -567,11 +567,12 @@ private boolean uploadFile(IngestJobState ingestJobState, long objId) throws CTC
 
             // upload metadata
             MetadataUploadRequest metaRequest = new MetadataUploadRequest()
-                    .setCreatedDate(af.getCrtime())
+                    .setCreatedDate(af.getCrtime() == 0 ? null : af.getCrtime())
                     .setFilePath(af.getUniquePath())
                     .setFileSizeBytes(af.getSize())
                     .setFileUploadUrl(authTokenResponse.getFileUploadUrl())
-                    .setMd5(af.getMd5Hash())
+                    .setMd5(md5)
+                    // these may be missing, but that's fine
                     .setSha1(af.getSha1Hash())
                     .setSha256(af.getSha256Hash());