[Bug]: Library Crash #1358

Closed
opened 2026-04-24 23:41:07 +02:00 by adam · 1 comment
Owner

Originally created by @p-rintz on GitHub (Sep 9, 2023).

Describe the issue

Hello,

since the new 2.4.0 version, when accessing the podcast library, the ABS server will crash entirely.

This does not happen when accessing the audibook library.

Logs:

[2023-09-09 17:54:42] DEBUG: Loaded filterdata in 0.01s (libraryFilters.js:497)
node:internal/process/promises:279
            triggerUncaughtException(err, true /* fromPromise */);
            ^

Error
    at Database.<anonymous> (/node_modules/sequelize/lib/dialects/sqlite/query.js:185:27)
    at /node_modules/sequelize/lib/dialects/sqlite/query.js:183:50
    at new Promise (<anonymous>)
    at Query.run (/node_modules/sequelize/lib/dialects/sqlite/query.js:183:12)
    at /node_modules/sequelize/lib/sequelize.js:315:28
    at async SQLiteQueryInterface.select (/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)
    at async Function.findAll (/node_modules/sequelize/lib/model.js:1140:21)
    at async Promise.all (index 1)
    at async Function.findAndCountAll (/node_modules/sequelize/lib/model.js:1322:27)
    at async Object.getFilteredLibraryItems (/server/utils/queries/libraryItemsPodcastFilters.js:149:39) {
  name: 'SequelizeDatabaseError',
  parent: [Error: SQLITE_ERROR: ambiguous column name: title] {
    errno: 1,
    code: 'SQLITE_ERROR',
    sql: "SELECT `podcast`.`id`, `podcast`.`title`, `podcast`.`titleIgnorePrefix`, `podcast`.`author`, `podcast`.`releaseDate`, `podcast`.`feedURL`, `podcast`.`imageURL`, `podcast`.`description`, `podcast`.`itunesPageURL`, `podcast`.`itunesId`, `podcast`.`itunesArtistId`, `podcast`.`language`, `podcast`.`podcastType`, `podcast`.`explicit`, `podcast`.`autoDownloadEpisodes`, `podcast`.`autoDownloadSchedule`, `podcast`.`lastEpisodeCheck`, `podcast`.`maxEpisodesToKeep`, `podcast`.`maxNewEpisodesToDownload`, `podcast`.`coverPath`, `podcast`.`tags`, `podcast`.`genres`, `podcast`.`createdAt`, `podcast`.`updatedAt`, (SELECT count(*) FROM podcastEpisodes pe WHERE pe.podcastId = podcast.id) AS `numEpisodes`, (SELECT count(*) FROM podcastEpisodes pe LEFT OUTER JOIN mediaProgresses mp ON mp.mediaItemId = pe.id AND mp.userId = '6b9f19be-5da0-4cdb-9910-e10a3b6262a1' WHERE pe.podcastId = podcast.id AND (mp.isFinished = 0 OR mp.isFinished IS NULL)) AS `numEpisodesIncomplete`, `libraryItem`.`id` AS `libraryItem.id`, `libraryItem`.`ino` AS `libraryItem.ino`, `libraryItem`.`path` AS `libraryItem.path`, `libraryItem`.`relPath` AS `libraryItem.relPath`, `libraryItem`.`mediaId` AS `libraryItem.mediaId`, `libraryItem`.`mediaType` AS `libraryItem.mediaType`, `libraryItem`.`isFile` AS `libraryItem.isFile`, `libraryItem`.`isMissing` AS `libraryItem.isMissing`, `libraryItem`.`isInvalid` AS `libraryItem.isInvalid`, `libraryItem`.`mtime` AS `libraryItem.mtime`, `libraryItem`.`ctime` AS `libraryItem.ctime`, `libraryItem`.`birthtime` AS `libraryItem.birthtime`, `libraryItem`.`size` AS `libraryItem.size`, `libraryItem`.`lastScan` AS `libraryItem.lastScan`, `libraryItem`.`lastScanVersion` AS `libraryItem.lastScanVersion`, `libraryItem`.`libraryFiles` AS `libraryItem.libraryFiles`, `libraryItem`.`extraData` AS `libraryItem.extraData`, `libraryItem`.`createdAt` AS `libraryItem.createdAt`, `libraryItem`.`updatedAt` AS `libraryItem.updatedAt`, `libraryItem`.`libraryId` AS `libraryItem.libraryId`, `libraryItem`.`libraryFolderId` AS `libraryItem.libraryFolderId`, `libraryItem->feeds`.`id` AS `libraryItem.feeds.id`, `libraryItem->feeds`.`slug` AS `libraryItem.feeds.slug`, `libraryItem->feeds`.`entityType` AS `libraryItem.feeds.entityType`, `libraryItem->feeds`.`entityId` AS `libraryItem.feeds.entityId`, `libraryItem->feeds`.`entityUpdatedAt` AS `libraryItem.feeds.entityUpdatedAt`, `libraryItem->feeds`.`serverAddress` AS `libraryItem.feeds.serverAddress`, `libraryItem->feeds`.`feedURL` AS `libraryItem.feeds.feedURL`, `libraryItem->feeds`.`imageURL` AS `libraryItem.feeds.imageURL`, `libraryItem->feeds`.`siteURL` AS `libraryItem.feeds.siteURL`, `libraryItem->feeds`.`title` AS `libraryItem.feeds.title`, `libraryItem->feeds`.`description` AS `libraryItem.feeds.description`, `libraryItem->feeds`.`author` AS `libraryItem.feeds.author`, `libraryItem->feeds`.`podcastType` AS `libraryItem.feeds.podcastType`, `libraryItem->feeds`.`language` AS `libraryItem.feeds.language`, `libraryItem->feeds`.`ownerName` AS `libraryItem.feeds.ownerName`, `libraryItem->feeds`.`ownerEmail` AS `libraryItem.feeds.ownerEmail`, `libraryItem->feeds`.`explicit` AS `libraryItem.feeds.explicit`, `libraryItem->feeds`.`preventIndexing` AS `libraryItem.feeds.preventIndexing`, `libraryItem->feeds`.`coverPath` AS `libraryItem.feeds.coverPath`, `libraryItem->feeds`.`createdAt` AS `libraryItem.feeds.createdAt`, `libraryItem->feeds`.`updatedAt` AS `libraryItem.feeds.updatedAt`, `libraryItem->feeds`.`userId` AS `libraryItem.feeds.userId` FROM `podcasts` AS `podcast` INNER JOIN `libraryItems` AS `libraryItem` ON `podcast`.`id` = `libraryItem`.`mediaId` AND (`libraryItem`.`libraryId` = '74bc0946-d578-4210-872c-5f479b1a20d8' AND `libraryItem`.`mediaType` = 'podcast') LEFT OUTER JOIN `feeds` AS `libraryItem->feeds` ON `libraryItem`.`id` = `libraryItem->feeds`.`entityId` AND `libraryItem->feeds`.`entityType` = 'libraryItem' WHERE 1=1 ORDER BY title COLLATE NOCASE ASC LIMIT 0, 100;"
  },
  original: [Error: SQLITE_ERROR: ambiguous column name: title] {
    errno: 1,
    code: 'SQLITE_ERROR',
    sql: "SELECT `podcast`.`id`, `podcast`.`title`, `podcast`.`titleIgnorePrefix`, `podcast`.`author`, `podcast`.`releaseDate`, `podcast`.`feedURL`, `podcast`.`imageURL`, `podcast`.`description`, `podcast`.`itunesPageURL`, `podcast`.`itunesId`, `podcast`.`itunesArtistId`, `podcast`.`language`, `podcast`.`podcastType`, `podcast`.`explicit`, `podcast`.`autoDownloadEpisodes`, `podcast`.`autoDownloadSchedule`, `podcast`.`lastEpisodeCheck`, `podcast`.`maxEpisodesToKeep`, `podcast`.`maxNewEpisodesToDownload`, `podcast`.`coverPath`, `podcast`.`tags`, `podcast`.`genres`, `podcast`.`createdAt`, `podcast`.`updatedAt`, (SELECT count(*) FROM podcastEpisodes pe WHERE pe.podcastId = podcast.id) AS `numEpisodes`, (SELECT count(*) FROM podcastEpisodes pe LEFT OUTER JOIN mediaProgresses mp ON mp.mediaItemId = pe.id AND mp.userId = '6b9f19be-5da0-4cdb-9910-e10a3b6262a1' WHERE pe.podcastId = podcast.id AND (mp.isFinished = 0 OR mp.isFinished IS NULL)) AS `numEpisodesIncomplete`, `libraryItem`.`id` AS `libraryItem.id`, `libraryItem`.`ino` AS `libraryItem.ino`, `libraryItem`.`path` AS `libraryItem.path`, `libraryItem`.`relPath` AS `libraryItem.relPath`, `libraryItem`.`mediaId` AS `libraryItem.mediaId`, `libraryItem`.`mediaType` AS `libraryItem.mediaType`, `libraryItem`.`isFile` AS `libraryItem.isFile`, `libraryItem`.`isMissing` AS `libraryItem.isMissing`, `libraryItem`.`isInvalid` AS `libraryItem.isInvalid`, `libraryItem`.`mtime` AS `libraryItem.mtime`, `libraryItem`.`ctime` AS `libraryItem.ctime`, `libraryItem`.`birthtime` AS `libraryItem.birthtime`, `libraryItem`.`size` AS `libraryItem.size`, `libraryItem`.`lastScan` AS `libraryItem.lastScan`, `libraryItem`.`lastScanVersion` AS `libraryItem.lastScanVersion`, `libraryItem`.`libraryFiles` AS `libraryItem.libraryFiles`, `libraryItem`.`extraData` AS `libraryItem.extraData`, `libraryItem`.`createdAt` AS `libraryItem.createdAt`, `libraryItem`.`updatedAt` AS `libraryItem.updatedAt`, `libraryItem`.`libraryId` AS `libraryItem.libraryId`, `libraryItem`.`libraryFolderId` AS `libraryItem.libraryFolderId`, `libraryItem->feeds`.`id` AS `libraryItem.feeds.id`, `libraryItem->feeds`.`slug` AS `libraryItem.feeds.slug`, `libraryItem->feeds`.`entityType` AS `libraryItem.feeds.entityType`, `libraryItem->feeds`.`entityId` AS `libraryItem.feeds.entityId`, `libraryItem->feeds`.`entityUpdatedAt` AS `libraryItem.feeds.entityUpdatedAt`, `libraryItem->feeds`.`serverAddress` AS `libraryItem.feeds.serverAddress`, `libraryItem->feeds`.`feedURL` AS `libraryItem.feeds.feedURL`, `libraryItem->feeds`.`imageURL` AS `libraryItem.feeds.imageURL`, `libraryItem->feeds`.`siteURL` AS `libraryItem.feeds.siteURL`, `libraryItem->feeds`.`title` AS `libraryItem.feeds.title`, `libraryItem->feeds`.`description` AS `libraryItem.feeds.description`, `libraryItem->feeds`.`author` AS `libraryItem.feeds.author`, `libraryItem->feeds`.`podcastType` AS `libraryItem.feeds.podcastType`, `libraryItem->feeds`.`language` AS `libraryItem.feeds.language`, `libraryItem->feeds`.`ownerName` AS `libraryItem.feeds.ownerName`, `libraryItem->feeds`.`ownerEmail` AS `libraryItem.feeds.ownerEmail`, `libraryItem->feeds`.`explicit` AS `libraryItem.feeds.explicit`, `libraryItem->feeds`.`preventIndexing` AS `libraryItem.feeds.preventIndexing`, `libraryItem->feeds`.`coverPath` AS `libraryItem.feeds.coverPath`, `libraryItem->feeds`.`createdAt` AS `libraryItem.feeds.createdAt`, `libraryItem->feeds`.`updatedAt` AS `libraryItem.feeds.updatedAt`, `libraryItem->feeds`.`userId` AS `libraryItem.feeds.userId` FROM `podcasts` AS `podcast` INNER JOIN `libraryItems` AS `libraryItem` ON `podcast`.`id` = `libraryItem`.`mediaId` AND (`libraryItem`.`libraryId` = '74bc0946-d578-4210-872c-5f479b1a20d8' AND `libraryItem`.`mediaType` = 'podcast') LEFT OUTER JOIN `feeds` AS `libraryItem->feeds` ON `libraryItem`.`id` = `libraryItem->feeds`.`entityId` AND `libraryItem->feeds`.`entityType` = 'libraryItem' WHERE 1=1 ORDER BY title COLLATE NOCASE ASC LIMIT 0, 100;"
  },
  sql: "SELECT `podcast`.`id`, `podcast`.`title`, `podcast`.`titleIgnorePrefix`, `podcast`.`author`, `podcast`.`releaseDate`, `podcast`.`feedURL`, `podcast`.`imageURL`, `podcast`.`description`, `podcast`.`itunesPageURL`, `podcast`.`itunesId`, `podcast`.`itunesArtistId`, `podcast`.`language`, `podcast`.`podcastType`, `podcast`.`explicit`, `podcast`.`autoDownloadEpisodes`, `podcast`.`autoDownloadSchedule`, `podcast`.`lastEpisodeCheck`, `podcast`.`maxEpisodesToKeep`, `podcast`.`maxNewEpisodesToDownload`, `podcast`.`coverPath`, `podcast`.`tags`, `podcast`.`genres`, `podcast`.`createdAt`, `podcast`.`updatedAt`, (SELECT count(*) FROM podcastEpisodes pe WHERE pe.podcastId = podcast.id) AS `numEpisodes`, (SELECT count(*) FROM podcastEpisodes pe LEFT OUTER JOIN mediaProgresses mp ON mp.mediaItemId = pe.id AND mp.userId = '6b9f19be-5da0-4cdb-9910-e10a3b6262a1' WHERE pe.podcastId = podcast.id AND (mp.isFinished = 0 OR mp.isFinished IS NULL)) AS `numEpisodesIncomplete`, `libraryItem`.`id` AS `libraryItem.id`, `libraryItem`.`ino` AS `libraryItem.ino`, `libraryItem`.`path` AS `libraryItem.path`, `libraryItem`.`relPath` AS `libraryItem.relPath`, `libraryItem`.`mediaId` AS `libraryItem.mediaId`, `libraryItem`.`mediaType` AS `libraryItem.mediaType`, `libraryItem`.`isFile` AS `libraryItem.isFile`, `libraryItem`.`isMissing` AS `libraryItem.isMissing`, `libraryItem`.`isInvalid` AS `libraryItem.isInvalid`, `libraryItem`.`mtime` AS `libraryItem.mtime`, `libraryItem`.`ctime` AS `libraryItem.ctime`, `libraryItem`.`birthtime` AS `libraryItem.birthtime`, `libraryItem`.`size` AS `libraryItem.size`, `libraryItem`.`lastScan` AS `libraryItem.lastScan`, `libraryItem`.`lastScanVersion` AS `libraryItem.lastScanVersion`, `libraryItem`.`libraryFiles` AS `libraryItem.libraryFiles`, `libraryItem`.`extraData` AS `libraryItem.extraData`, `libraryItem`.`createdAt` AS `libraryItem.createdAt`, `libraryItem`.`updatedAt` AS `libraryItem.updatedAt`, `libraryItem`.`libraryId` AS `libraryItem.libraryId`, `libraryItem`.`libraryFolderId` AS `libraryItem.libraryFolderId`, `libraryItem->feeds`.`id` AS `libraryItem.feeds.id`, `libraryItem->feeds`.`slug` AS `libraryItem.feeds.slug`, `libraryItem->feeds`.`entityType` AS `libraryItem.feeds.entityType`, `libraryItem->feeds`.`entityId` AS `libraryItem.feeds.entityId`, `libraryItem->feeds`.`entityUpdatedAt` AS `libraryItem.feeds.entityUpdatedAt`, `libraryItem->feeds`.`serverAddress` AS `libraryItem.feeds.serverAddress`, `libraryItem->feeds`.`feedURL` AS `libraryItem.feeds.feedURL`, `libraryItem->feeds`.`imageURL` AS `libraryItem.feeds.imageURL`, `libraryItem->feeds`.`siteURL` AS `libraryItem.feeds.siteURL`, `libraryItem->feeds`.`title` AS `libraryItem.feeds.title`, `libraryItem->feeds`.`description` AS `libraryItem.feeds.description`, `libraryItem->feeds`.`author` AS `libraryItem.feeds.author`, `libraryItem->feeds`.`podcastType` AS `libraryItem.feeds.podcastType`, `libraryItem->feeds`.`language` AS `libraryItem.feeds.language`, `libraryItem->feeds`.`ownerName` AS `libraryItem.feeds.ownerName`, `libraryItem->feeds`.`ownerEmail` AS `libraryItem.feeds.ownerEmail`, `libraryItem->feeds`.`explicit` AS `libraryItem.feeds.explicit`, `libraryItem->feeds`.`preventIndexing` AS `libraryItem.feeds.preventIndexing`, `libraryItem->feeds`.`coverPath` AS `libraryItem.feeds.coverPath`, `libraryItem->feeds`.`createdAt` AS `libraryItem.feeds.createdAt`, `libraryItem->feeds`.`updatedAt` AS `libraryItem.feeds.updatedAt`, `libraryItem->feeds`.`userId` AS `libraryItem.feeds.userId` FROM `podcasts` AS `podcast` INNER JOIN `libraryItems` AS `libraryItem` ON `podcast`.`id` = `libraryItem`.`mediaId` AND (`libraryItem`.`libraryId` = '74bc0946-d578-4210-872c-5f479b1a20d8' AND `libraryItem`.`mediaType` = 'podcast') LEFT OUTER JOIN `feeds` AS `libraryItem->feeds` ON `libraryItem`.`id` = `libraryItem->feeds`.`entityId` AND `libraryItem->feeds`.`entityType` = 'libraryItem' WHERE 1=1 ORDER BY title COLLATE NOCASE ASC LIMIT 0, 100;",
  parameters: {}
}

> audiobookshelf@2.4.0 start
> node index.js

This happens every time the podcast library is accessed.

Steps to reproduce the issue

  1. Go to website or iOS app
  2. Access podcast library

Audiobookshelf version

2.4.0

How are you running audiobookshelf?

Docker

Originally created by @p-rintz on GitHub (Sep 9, 2023). ### Describe the issue Hello, since the new 2.4.0 version, when accessing the podcast library, the ABS server will crash entirely. This does not happen when accessing the audibook library. Logs: ``` [2023-09-09 17:54:42] DEBUG: Loaded filterdata in 0.01s (libraryFilters.js:497) node:internal/process/promises:279 triggerUncaughtException(err, true /* fromPromise */); ^ Error at Database.<anonymous> (/node_modules/sequelize/lib/dialects/sqlite/query.js:185:27) at /node_modules/sequelize/lib/dialects/sqlite/query.js:183:50 at new Promise (<anonymous>) at Query.run (/node_modules/sequelize/lib/dialects/sqlite/query.js:183:12) at /node_modules/sequelize/lib/sequelize.js:315:28 at async SQLiteQueryInterface.select (/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12) at async Function.findAll (/node_modules/sequelize/lib/model.js:1140:21) at async Promise.all (index 1) at async Function.findAndCountAll (/node_modules/sequelize/lib/model.js:1322:27) at async Object.getFilteredLibraryItems (/server/utils/queries/libraryItemsPodcastFilters.js:149:39) { name: 'SequelizeDatabaseError', parent: [Error: SQLITE_ERROR: ambiguous column name: title] { errno: 1, code: 'SQLITE_ERROR', sql: "SELECT `podcast`.`id`, `podcast`.`title`, `podcast`.`titleIgnorePrefix`, `podcast`.`author`, `podcast`.`releaseDate`, `podcast`.`feedURL`, `podcast`.`imageURL`, `podcast`.`description`, `podcast`.`itunesPageURL`, `podcast`.`itunesId`, `podcast`.`itunesArtistId`, `podcast`.`language`, `podcast`.`podcastType`, `podcast`.`explicit`, `podcast`.`autoDownloadEpisodes`, `podcast`.`autoDownloadSchedule`, `podcast`.`lastEpisodeCheck`, `podcast`.`maxEpisodesToKeep`, `podcast`.`maxNewEpisodesToDownload`, `podcast`.`coverPath`, `podcast`.`tags`, `podcast`.`genres`, `podcast`.`createdAt`, `podcast`.`updatedAt`, (SELECT count(*) FROM podcastEpisodes pe WHERE pe.podcastId = podcast.id) AS `numEpisodes`, (SELECT count(*) FROM podcastEpisodes pe LEFT OUTER JOIN mediaProgresses mp ON mp.mediaItemId = pe.id AND mp.userId = '6b9f19be-5da0-4cdb-9910-e10a3b6262a1' WHERE pe.podcastId = podcast.id AND (mp.isFinished = 0 OR mp.isFinished IS NULL)) AS `numEpisodesIncomplete`, `libraryItem`.`id` AS `libraryItem.id`, `libraryItem`.`ino` AS `libraryItem.ino`, `libraryItem`.`path` AS `libraryItem.path`, `libraryItem`.`relPath` AS `libraryItem.relPath`, `libraryItem`.`mediaId` AS `libraryItem.mediaId`, `libraryItem`.`mediaType` AS `libraryItem.mediaType`, `libraryItem`.`isFile` AS `libraryItem.isFile`, `libraryItem`.`isMissing` AS `libraryItem.isMissing`, `libraryItem`.`isInvalid` AS `libraryItem.isInvalid`, `libraryItem`.`mtime` AS `libraryItem.mtime`, `libraryItem`.`ctime` AS `libraryItem.ctime`, `libraryItem`.`birthtime` AS `libraryItem.birthtime`, `libraryItem`.`size` AS `libraryItem.size`, `libraryItem`.`lastScan` AS `libraryItem.lastScan`, `libraryItem`.`lastScanVersion` AS `libraryItem.lastScanVersion`, `libraryItem`.`libraryFiles` AS `libraryItem.libraryFiles`, `libraryItem`.`extraData` AS `libraryItem.extraData`, `libraryItem`.`createdAt` AS `libraryItem.createdAt`, `libraryItem`.`updatedAt` AS `libraryItem.updatedAt`, `libraryItem`.`libraryId` AS `libraryItem.libraryId`, `libraryItem`.`libraryFolderId` AS `libraryItem.libraryFolderId`, `libraryItem->feeds`.`id` AS `libraryItem.feeds.id`, `libraryItem->feeds`.`slug` AS `libraryItem.feeds.slug`, `libraryItem->feeds`.`entityType` AS `libraryItem.feeds.entityType`, `libraryItem->feeds`.`entityId` AS `libraryItem.feeds.entityId`, `libraryItem->feeds`.`entityUpdatedAt` AS `libraryItem.feeds.entityUpdatedAt`, `libraryItem->feeds`.`serverAddress` AS `libraryItem.feeds.serverAddress`, `libraryItem->feeds`.`feedURL` AS `libraryItem.feeds.feedURL`, `libraryItem->feeds`.`imageURL` AS `libraryItem.feeds.imageURL`, `libraryItem->feeds`.`siteURL` AS `libraryItem.feeds.siteURL`, `libraryItem->feeds`.`title` AS `libraryItem.feeds.title`, `libraryItem->feeds`.`description` AS `libraryItem.feeds.description`, `libraryItem->feeds`.`author` AS `libraryItem.feeds.author`, `libraryItem->feeds`.`podcastType` AS `libraryItem.feeds.podcastType`, `libraryItem->feeds`.`language` AS `libraryItem.feeds.language`, `libraryItem->feeds`.`ownerName` AS `libraryItem.feeds.ownerName`, `libraryItem->feeds`.`ownerEmail` AS `libraryItem.feeds.ownerEmail`, `libraryItem->feeds`.`explicit` AS `libraryItem.feeds.explicit`, `libraryItem->feeds`.`preventIndexing` AS `libraryItem.feeds.preventIndexing`, `libraryItem->feeds`.`coverPath` AS `libraryItem.feeds.coverPath`, `libraryItem->feeds`.`createdAt` AS `libraryItem.feeds.createdAt`, `libraryItem->feeds`.`updatedAt` AS `libraryItem.feeds.updatedAt`, `libraryItem->feeds`.`userId` AS `libraryItem.feeds.userId` FROM `podcasts` AS `podcast` INNER JOIN `libraryItems` AS `libraryItem` ON `podcast`.`id` = `libraryItem`.`mediaId` AND (`libraryItem`.`libraryId` = '74bc0946-d578-4210-872c-5f479b1a20d8' AND `libraryItem`.`mediaType` = 'podcast') LEFT OUTER JOIN `feeds` AS `libraryItem->feeds` ON `libraryItem`.`id` = `libraryItem->feeds`.`entityId` AND `libraryItem->feeds`.`entityType` = 'libraryItem' WHERE 1=1 ORDER BY title COLLATE NOCASE ASC LIMIT 0, 100;" }, original: [Error: SQLITE_ERROR: ambiguous column name: title] { errno: 1, code: 'SQLITE_ERROR', sql: "SELECT `podcast`.`id`, `podcast`.`title`, `podcast`.`titleIgnorePrefix`, `podcast`.`author`, `podcast`.`releaseDate`, `podcast`.`feedURL`, `podcast`.`imageURL`, `podcast`.`description`, `podcast`.`itunesPageURL`, `podcast`.`itunesId`, `podcast`.`itunesArtistId`, `podcast`.`language`, `podcast`.`podcastType`, `podcast`.`explicit`, `podcast`.`autoDownloadEpisodes`, `podcast`.`autoDownloadSchedule`, `podcast`.`lastEpisodeCheck`, `podcast`.`maxEpisodesToKeep`, `podcast`.`maxNewEpisodesToDownload`, `podcast`.`coverPath`, `podcast`.`tags`, `podcast`.`genres`, `podcast`.`createdAt`, `podcast`.`updatedAt`, (SELECT count(*) FROM podcastEpisodes pe WHERE pe.podcastId = podcast.id) AS `numEpisodes`, (SELECT count(*) FROM podcastEpisodes pe LEFT OUTER JOIN mediaProgresses mp ON mp.mediaItemId = pe.id AND mp.userId = '6b9f19be-5da0-4cdb-9910-e10a3b6262a1' WHERE pe.podcastId = podcast.id AND (mp.isFinished = 0 OR mp.isFinished IS NULL)) AS `numEpisodesIncomplete`, `libraryItem`.`id` AS `libraryItem.id`, `libraryItem`.`ino` AS `libraryItem.ino`, `libraryItem`.`path` AS `libraryItem.path`, `libraryItem`.`relPath` AS `libraryItem.relPath`, `libraryItem`.`mediaId` AS `libraryItem.mediaId`, `libraryItem`.`mediaType` AS `libraryItem.mediaType`, `libraryItem`.`isFile` AS `libraryItem.isFile`, `libraryItem`.`isMissing` AS `libraryItem.isMissing`, `libraryItem`.`isInvalid` AS `libraryItem.isInvalid`, `libraryItem`.`mtime` AS `libraryItem.mtime`, `libraryItem`.`ctime` AS `libraryItem.ctime`, `libraryItem`.`birthtime` AS `libraryItem.birthtime`, `libraryItem`.`size` AS `libraryItem.size`, `libraryItem`.`lastScan` AS `libraryItem.lastScan`, `libraryItem`.`lastScanVersion` AS `libraryItem.lastScanVersion`, `libraryItem`.`libraryFiles` AS `libraryItem.libraryFiles`, `libraryItem`.`extraData` AS `libraryItem.extraData`, `libraryItem`.`createdAt` AS `libraryItem.createdAt`, `libraryItem`.`updatedAt` AS `libraryItem.updatedAt`, `libraryItem`.`libraryId` AS `libraryItem.libraryId`, `libraryItem`.`libraryFolderId` AS `libraryItem.libraryFolderId`, `libraryItem->feeds`.`id` AS `libraryItem.feeds.id`, `libraryItem->feeds`.`slug` AS `libraryItem.feeds.slug`, `libraryItem->feeds`.`entityType` AS `libraryItem.feeds.entityType`, `libraryItem->feeds`.`entityId` AS `libraryItem.feeds.entityId`, `libraryItem->feeds`.`entityUpdatedAt` AS `libraryItem.feeds.entityUpdatedAt`, `libraryItem->feeds`.`serverAddress` AS `libraryItem.feeds.serverAddress`, `libraryItem->feeds`.`feedURL` AS `libraryItem.feeds.feedURL`, `libraryItem->feeds`.`imageURL` AS `libraryItem.feeds.imageURL`, `libraryItem->feeds`.`siteURL` AS `libraryItem.feeds.siteURL`, `libraryItem->feeds`.`title` AS `libraryItem.feeds.title`, `libraryItem->feeds`.`description` AS `libraryItem.feeds.description`, `libraryItem->feeds`.`author` AS `libraryItem.feeds.author`, `libraryItem->feeds`.`podcastType` AS `libraryItem.feeds.podcastType`, `libraryItem->feeds`.`language` AS `libraryItem.feeds.language`, `libraryItem->feeds`.`ownerName` AS `libraryItem.feeds.ownerName`, `libraryItem->feeds`.`ownerEmail` AS `libraryItem.feeds.ownerEmail`, `libraryItem->feeds`.`explicit` AS `libraryItem.feeds.explicit`, `libraryItem->feeds`.`preventIndexing` AS `libraryItem.feeds.preventIndexing`, `libraryItem->feeds`.`coverPath` AS `libraryItem.feeds.coverPath`, `libraryItem->feeds`.`createdAt` AS `libraryItem.feeds.createdAt`, `libraryItem->feeds`.`updatedAt` AS `libraryItem.feeds.updatedAt`, `libraryItem->feeds`.`userId` AS `libraryItem.feeds.userId` FROM `podcasts` AS `podcast` INNER JOIN `libraryItems` AS `libraryItem` ON `podcast`.`id` = `libraryItem`.`mediaId` AND (`libraryItem`.`libraryId` = '74bc0946-d578-4210-872c-5f479b1a20d8' AND `libraryItem`.`mediaType` = 'podcast') LEFT OUTER JOIN `feeds` AS `libraryItem->feeds` ON `libraryItem`.`id` = `libraryItem->feeds`.`entityId` AND `libraryItem->feeds`.`entityType` = 'libraryItem' WHERE 1=1 ORDER BY title COLLATE NOCASE ASC LIMIT 0, 100;" }, sql: "SELECT `podcast`.`id`, `podcast`.`title`, `podcast`.`titleIgnorePrefix`, `podcast`.`author`, `podcast`.`releaseDate`, `podcast`.`feedURL`, `podcast`.`imageURL`, `podcast`.`description`, `podcast`.`itunesPageURL`, `podcast`.`itunesId`, `podcast`.`itunesArtistId`, `podcast`.`language`, `podcast`.`podcastType`, `podcast`.`explicit`, `podcast`.`autoDownloadEpisodes`, `podcast`.`autoDownloadSchedule`, `podcast`.`lastEpisodeCheck`, `podcast`.`maxEpisodesToKeep`, `podcast`.`maxNewEpisodesToDownload`, `podcast`.`coverPath`, `podcast`.`tags`, `podcast`.`genres`, `podcast`.`createdAt`, `podcast`.`updatedAt`, (SELECT count(*) FROM podcastEpisodes pe WHERE pe.podcastId = podcast.id) AS `numEpisodes`, (SELECT count(*) FROM podcastEpisodes pe LEFT OUTER JOIN mediaProgresses mp ON mp.mediaItemId = pe.id AND mp.userId = '6b9f19be-5da0-4cdb-9910-e10a3b6262a1' WHERE pe.podcastId = podcast.id AND (mp.isFinished = 0 OR mp.isFinished IS NULL)) AS `numEpisodesIncomplete`, `libraryItem`.`id` AS `libraryItem.id`, `libraryItem`.`ino` AS `libraryItem.ino`, `libraryItem`.`path` AS `libraryItem.path`, `libraryItem`.`relPath` AS `libraryItem.relPath`, `libraryItem`.`mediaId` AS `libraryItem.mediaId`, `libraryItem`.`mediaType` AS `libraryItem.mediaType`, `libraryItem`.`isFile` AS `libraryItem.isFile`, `libraryItem`.`isMissing` AS `libraryItem.isMissing`, `libraryItem`.`isInvalid` AS `libraryItem.isInvalid`, `libraryItem`.`mtime` AS `libraryItem.mtime`, `libraryItem`.`ctime` AS `libraryItem.ctime`, `libraryItem`.`birthtime` AS `libraryItem.birthtime`, `libraryItem`.`size` AS `libraryItem.size`, `libraryItem`.`lastScan` AS `libraryItem.lastScan`, `libraryItem`.`lastScanVersion` AS `libraryItem.lastScanVersion`, `libraryItem`.`libraryFiles` AS `libraryItem.libraryFiles`, `libraryItem`.`extraData` AS `libraryItem.extraData`, `libraryItem`.`createdAt` AS `libraryItem.createdAt`, `libraryItem`.`updatedAt` AS `libraryItem.updatedAt`, `libraryItem`.`libraryId` AS `libraryItem.libraryId`, `libraryItem`.`libraryFolderId` AS `libraryItem.libraryFolderId`, `libraryItem->feeds`.`id` AS `libraryItem.feeds.id`, `libraryItem->feeds`.`slug` AS `libraryItem.feeds.slug`, `libraryItem->feeds`.`entityType` AS `libraryItem.feeds.entityType`, `libraryItem->feeds`.`entityId` AS `libraryItem.feeds.entityId`, `libraryItem->feeds`.`entityUpdatedAt` AS `libraryItem.feeds.entityUpdatedAt`, `libraryItem->feeds`.`serverAddress` AS `libraryItem.feeds.serverAddress`, `libraryItem->feeds`.`feedURL` AS `libraryItem.feeds.feedURL`, `libraryItem->feeds`.`imageURL` AS `libraryItem.feeds.imageURL`, `libraryItem->feeds`.`siteURL` AS `libraryItem.feeds.siteURL`, `libraryItem->feeds`.`title` AS `libraryItem.feeds.title`, `libraryItem->feeds`.`description` AS `libraryItem.feeds.description`, `libraryItem->feeds`.`author` AS `libraryItem.feeds.author`, `libraryItem->feeds`.`podcastType` AS `libraryItem.feeds.podcastType`, `libraryItem->feeds`.`language` AS `libraryItem.feeds.language`, `libraryItem->feeds`.`ownerName` AS `libraryItem.feeds.ownerName`, `libraryItem->feeds`.`ownerEmail` AS `libraryItem.feeds.ownerEmail`, `libraryItem->feeds`.`explicit` AS `libraryItem.feeds.explicit`, `libraryItem->feeds`.`preventIndexing` AS `libraryItem.feeds.preventIndexing`, `libraryItem->feeds`.`coverPath` AS `libraryItem.feeds.coverPath`, `libraryItem->feeds`.`createdAt` AS `libraryItem.feeds.createdAt`, `libraryItem->feeds`.`updatedAt` AS `libraryItem.feeds.updatedAt`, `libraryItem->feeds`.`userId` AS `libraryItem.feeds.userId` FROM `podcasts` AS `podcast` INNER JOIN `libraryItems` AS `libraryItem` ON `podcast`.`id` = `libraryItem`.`mediaId` AND (`libraryItem`.`libraryId` = '74bc0946-d578-4210-872c-5f479b1a20d8' AND `libraryItem`.`mediaType` = 'podcast') LEFT OUTER JOIN `feeds` AS `libraryItem->feeds` ON `libraryItem`.`id` = `libraryItem->feeds`.`entityId` AND `libraryItem->feeds`.`entityType` = 'libraryItem' WHERE 1=1 ORDER BY title COLLATE NOCASE ASC LIMIT 0, 100;", parameters: {} } > audiobookshelf@2.4.0 start > node index.js ``` This happens every time the podcast library is accessed. ### Steps to reproduce the issue 1. Go to website or iOS app 2. Access podcast library ### Audiobookshelf version 2.4.0 ### How are you running audiobookshelf? Docker
adam added the bug label 2026-04-24 23:41:07 +02:00
adam closed this issue 2026-04-24 23:41:07 +02:00
Author
Owner

@advplyr commented on GitHub (Sep 10, 2023):

Fixed in v2.4.1

@advplyr commented on GitHub (Sep 10, 2023): Fixed in [v2.4.1](https://github.com/advplyr/audiobookshelf/releases/tag/v2.4.1)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/audiobookshelf#1358