diff --git a/packages/core/src/main.ts b/packages/core/src/main.ts
index 673a86b1..172cd930 100644
--- a/packages/core/src/main.ts
+++ b/packages/core/src/main.ts
@@ -410,10 +410,15 @@ export class AIOStreams {
}
if (candidates.length === 0) {
- logger.error(`No addon found supporting meta resource for type ${type}`);
- throw new Error(
- `No addon found supporting meta resource for type ${type}`
- );
+ logger.warn(`No supported addon was found for the requested meta`, {
+ type,
+ id,
+ });
+ return {
+ success: false,
+ data: null,
+ errors: [],
+ };
}
// Try each candidate in order, collecting errors
diff --git a/packages/core/src/transformers/stremio.ts b/packages/core/src/transformers/stremio.ts
index 69b4d154..c5f1f2df 100644
--- a/packages/core/src/transformers/stremio.ts
+++ b/packages/core/src/transformers/stremio.ts
@@ -201,9 +201,15 @@ export class StremioTransformer {
};
}
- transformMeta(response: AIOStreamsResponse): MetaResponse {
+ transformMeta(
+ response: AIOStreamsResponse
+ ): MetaResponse | null {
const { data: meta, errors } = response;
+ if (!meta && errors.length === 0) {
+ return null;
+ }
+
if (this.showError('meta', errors) || !meta) {
return {
meta: StremioTransformer.createErrorMeta({
diff --git a/packages/server/src/routes/stremio/meta.ts b/packages/server/src/routes/stremio/meta.ts
index 5f00aae9..fb2b664f 100644
--- a/packages/server/src/routes/stremio/meta.ts
+++ b/packages/server/src/routes/stremio/meta.ts
@@ -34,8 +34,12 @@ router.get(
await aiostreams.initialise();
const meta = await aiostreams.getMeta(type, id);
-
- res.status(200).json(transformer.transformMeta(meta));
+ const transformed = transformer.transformMeta(meta);
+ if (!transformed) {
+ next();
+ } else {
+ res.status(200).json(transformed);
+ }
} catch (error) {
next(error);
}