diff --git a/bindings/java/src/org/sleuthkit/datamodel/ContentVisitor.java b/bindings/java/src/org/sleuthkit/datamodel/ContentVisitor.java
index 9dfca101829654ba49a596ac5d6c7bda2119b84e..7d922b9f126955745f0717dcdfcaccbde3728d71 100755
--- a/bindings/java/src/org/sleuthkit/datamodel/ContentVisitor.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/ContentVisitor.java
@@ -174,6 +174,15 @@ public interface ContentVisitor<T> {
 	 * @return result of the visit
 	 */
 	T visit(OsAccount act);
+	
+	/**
+	 * Act on (visit) an UnsupportedContent object
+	 *
+	 * @param uc UnsupportedContent object to visit / act on
+	 *
+	 * @return result of the visit
+	 */
+	T visit(UnsupportedContent uc);
 
 	/**
 	 * The default content visitor - quickest method for implementing a custom
@@ -268,5 +277,10 @@ public T visit(Report r) {
 		public T visit(OsAccount act) {
 			return defaultVisit(act);
 		}
+		
+		@Override
+		public T visit(UnsupportedContent uc) {
+			return defaultVisit(uc);
+		}
 	}
 }
diff --git a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java
index 53fd9eb086e7dab745a82e0d5171cb22ac8e63f6..7fbf4f9d7dddb5d7653a76a372aa1d271e552a31 100755
--- a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java
@@ -3090,6 +3090,8 @@ public List<Content> getRootObjects() throws TskCoreException {
 							break;
 						case HOST_ADDRESS:
 							break;
+						case UNSUPPORTED:
+							break;
 						default:
 							throw new TskCoreException("Parentless object has wrong type to be a root: " + i.type);
 					}
@@ -5660,7 +5662,7 @@ public Content getContentById(long id) throws TskCoreException {
 				content = hostAddressManager.getHostAddress(id);
 				break;
 			default:
-				throw new TskCoreException("Could not obtain Content object with ID: " + id);
+				content = new UnsupportedContent(this, id);
 		}
 
 		return content;
diff --git a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitItemVisitor.java b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitItemVisitor.java
index 8fc8ec0a3d0191fe97dc8a09d5674ac9e3a6a94e..45927b1093bc598518bd573fbaa44d9eed4f6596 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitItemVisitor.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitItemVisitor.java
@@ -186,6 +186,15 @@ public interface SleuthkitItemVisitor<T> {
 	 * @return result of the visit
 	 */
 	T visit(OsAccount account);
+	
+	/**
+	 * Act on (visit) an UnsupportedContent object
+	 *
+	 * @param unsupportedContent content to visit / act on
+	 *
+	 * @return result of the visit
+	 */
+	T visit(UnsupportedContent unsupportedContent);
 
 	/**
 	 * The default visitor - quickest method for implementing a custom visitor.
@@ -284,5 +293,10 @@ public T visit(Report report) {
 		public T visit(OsAccount account) {
 			return defaultVisit(account);
 		}
+		
+		@Override
+		public T visit(UnsupportedContent unsupportedContent) {
+			return defaultVisit(unsupportedContent);
+		}
 	}
 }
diff --git a/bindings/java/src/org/sleuthkit/datamodel/TskData.java b/bindings/java/src/org/sleuthkit/datamodel/TskData.java
index 56e1af5aad4f1721da9dced6cb9347c805f0f4c3..805770328239cff06fe6536eecb206862ede928b 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/TskData.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/TskData.java
@@ -634,7 +634,8 @@ public enum ObjectType {
 		REPORT(6),	///< Report - see reports for more details
 		POOL(7),	///< Pool
 		OS_ACCOUNT(8), ///< OS Account - see tsk_os_accounts for more details
-		HOST_ADDRESS(9) ///< Host Address - see tsk_host_addresses for more details
+		HOST_ADDRESS(9), ///< Host Address - see tsk_host_addresses for more details
+		UNSUPPORTED(-1) ///< Unsupported type
 		; 
 		private final short objectType;
 
@@ -664,8 +665,7 @@ public static ObjectType valueOf(short objectType) {
 					return v;
 				}
 			}
-			throw new IllegalArgumentException(
-					MessageFormat.format(bundle.getString("TskData.objectTypeEnum.exception.msg1.text"), objectType));
+			return UNSUPPORTED;
 		}
 	}
 
diff --git a/bindings/java/src/org/sleuthkit/datamodel/UnsupportedContent.java b/bindings/java/src/org/sleuthkit/datamodel/UnsupportedContent.java
new file mode 100644
index 0000000000000000000000000000000000000000..2c49f6b66f37f50765fa4eadd1943a6fb7eb8f20
--- /dev/null
+++ b/bindings/java/src/org/sleuthkit/datamodel/UnsupportedContent.java
@@ -0,0 +1,63 @@
+/*
+ * Sleuth Kit Data Model
+ * 
+ * Copyright 2021 Basis Technology Corp.
+ * Contact: carrier <at> sleuthkit <dot> org
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.sleuthkit.datamodel;
+
+/**
+ * This content type is used as a default when the object type from the tsk_objects
+ * table is not present in the TskData.ObjectType enum. This should only come into play
+ * when loading case databases created by a newer version of Autopsy.
+ */
+public class UnsupportedContent extends AbstractContent {
+	
+	/**
+	 * Create an UnsupportedContent object.
+	 * Only store the object id.
+	 *
+	 * @param db        case database handle
+	 * @param obj_id    object id
+	 */
+	protected UnsupportedContent(SleuthkitCase db, long obj_id) {
+		super(db, obj_id, "Unsupported Content");
+	}
+
+	@Override
+	public int read(byte[] buf, long offset, long len) throws TskCoreException {
+		return 0;
+	}
+
+	@Override
+	public void close() {
+		// Do nothing
+	}
+
+	@Override
+	public long getSize() {
+		return 0;
+	}
+
+	@Override
+	public <T> T accept(ContentVisitor<T> v) {
+		return v.visit(this);
+	}
+
+	@Override
+	public <T> T accept(SleuthkitItemVisitor<T> v) {
+		return v.visit(this);
+	}
+}