diff --git a/src/io/import/processors/importSingleFile.ts b/src/io/import/processors/importSingleFile.ts index 9b3e50cd5..3db0a5feb 100644 --- a/src/io/import/processors/importSingleFile.ts +++ b/src/io/import/processors/importSingleFile.ts @@ -43,7 +43,9 @@ const importSingleFile: ImportHandler = async (dataSource) => { return asLoadableResult(dataID, dataSource, 'model'); } - throw new Error('Data reader did not produce a valid dataset'); + throw new Error( + `Failed to import "${dataSource.file.name}". The file may be corrupted or in an unsupported format variant.` + ); }; export default importSingleFile; diff --git a/src/io/import/processors/updateFileMimeType.ts b/src/io/import/processors/updateFileMimeType.ts index 9817632a6..ee4fff43b 100644 --- a/src/io/import/processors/updateFileMimeType.ts +++ b/src/io/import/processors/updateFileMimeType.ts @@ -1,17 +1,27 @@ import { Skip } from '@/src/utils/evaluateChain'; import { getFileMimeType } from '@/src/io'; import { ImportHandler, asIntermediateResult } from '@/src/io/import/common'; +import { MIME_TYPES } from '@/src/io/mimeTypes'; /** * Transforms a file data source to have a mime type * @param dataSource */ const updateFileMimeType: ImportHandler = async (dataSource) => { - if (dataSource.type !== 'file' || dataSource.fileType !== '') return Skip; + if (dataSource.type !== 'file') return Skip; + + const knownType = + dataSource.fileType !== '' && MIME_TYPES.has(dataSource.fileType); + if (knownType) { + return Skip; + } const mime = await getFileMimeType(dataSource.file); + if (!mime) { - throw new Error('File is unsupported'); + throw new Error( + `Unrecognized file type for "${dataSource.file.name}". This file format is not supported.` + ); } return asIntermediateResult([