Could not find a log backup file that could be applied to secondary database Was getting this error when trying to do a Log Shipping Restore, even though I had a bunch of TRN files that were sequential. Seems that the filename of the log file are required to be in the following format [database_name]_[utc_time_stamp].trn. Any other filename format will result in SQL Server not being able to find the file.
Run the following from the primary node.  It will output a Recovery Chain for each database hosted on the Instance.  It should show you not only the files you need to recover, but the order in which you need to do so.  You should be able copy the commands from the query output, paste them into a query window connected to your secondary, and so long as you also brought over the backups files, run the commands in the order supplied and get the database up to a point where you can join it to the AG.  This script supports striped backups, differentials, COPY_ONLY, etc.

WITH BackupHist
AS
(
        SELECT
                s.server_name
            ,   d.name AS database_name
            ,   STUFF(( SELECT  ''', DISK = ''' + physical_device_name
                    FROM    msdb.dbo.backupmediafamily
                    WHERE   media_set_id = s.media_set_id
                    ORDER BY family_sequence_number
                    FOR XML PATH('')),
                1 ,
                3 ,
                '') + '''' AS physical_device_name
            ,   (   SELECT  TOP 1
                        CASE device_type
                            WHEN 2 THEN 'Disk'
                            WHEN 102 THEN 'Backup Device (Disk)'
                            WHEN 5 THEN 'Tape'
                            WHEN 105 THEN 'Backup Device (Tape)'
                            WHEN 7 THEN 'Virtual Device'
                        END AS device_type
                    FROM    msdb.dbo.backupmediafamily
                    WHERE   media_set_id = s.media_set_id) AS device_type
            ,   CAST (s.backup_size / 1048576.0 AS FLOAT) AS backup_size_mb
            ,   CAST (s.compressed_backup_size / 1048576.0 AS FLOAT) AS compressed_backup_size_mb
            ,   s.backup_start_date
            ,   s.first_lsn
            ,   s.last_lsn
            ,   s.checkpoint_lsn
            ,   s.backup_finish_date
            ,   s.database_backup_lsn
            ,   s.is_copy_only
            ,   CASE s.[type]
                    WHEN 'D' THEN 'Database (Full)'
                    WHEN 'I' THEN 'Database (Differential)'
                    WHEN 'L' THEN 'Transaction Log'
                    WHEN 'F' THEN 'File or Filegroup (Full)'
                    WHEN 'G' THEN 'File or Filegroup (DIfferential)'
                    WHEN 'P' THEN 'Partial (Full)'
                    WHEN 'Q' THEN 'Partial (Differential)'
                END AS backup_type
            ,   s.recovery_model
        FROM    msdb.dbo.backupset s RIGHT OUTER JOIN sys.databases d
                ON s.database_name = d.name
                AND s.recovery_model = d.recovery_model_desc
        COLLATE SQL_Latin1_General_CP1_CI_AS
), BackupHistFullIterations AS
(
    SELECT
            server_name
        ,   database_name
        ,   backup_finish_date
        ,   backup_type
        ,   database_backup_lsn
        ,   is_copy_only
        ,   first_lsn
        ,   last_lsn
        ,   checkpoint_lsn
        ,   physical_device_name
        ,   ROW_NUMBER() OVER (PARTITION BY database_name ORDER BY backup_finish_date DESC) AS BackupIteration
    FROM    BackupHist
    WHERE   backup_type = 'Database (Full)'
), BackupHistDiffIterations AS
(
    SELECT 
            server_name
        ,   database_name
        ,   backup_finish_date
        ,   backup_type
        ,   database_backup_lsn
        ,   is_copy_only
        ,   first_lsn
        ,   last_lsn
        ,   checkpoint_lsn
        ,   physical_device_name
        ,   ROW_NUMBER() OVER (PARTITION BY database_name ORDER BY backup_finish_date DESC) AS BackupIteration
    FROM    BackupHist
    WHERE   backup_type = 'Database (Differential)'
), BackupHistFullDiffRestores AS
(
        SELECT  *
            ,   MAX(last_lsn) OVER (PARTITION BY base.database_name ORDER BY backup_finish_date DESC) AS recent_last_lsn
            ,   ROW_NUMBER() OVER (PARTITION BY base.database_name ORDER BY backup_finish_date DESC) AS recent_bak_num
        FROM (
                SELECT  *
                FROM    BackupHistFullIterations
                WHERE   BackupIteration = 1 -- Show the most recent iteration

                UNION ALL

                -- Get most recent Differential based on Most Recent Full Backup if exists and most recent full is NOT a COPY-ONLY
                SELECT  *
                FROM    BackupHistDiffIterations d
                WHERE   d.BackupIteration = 1
                    AND d.database_backup_lsn = (   SELECT MAX(checkpoint_lsn)
                                                FROM BackupHistFullIterations
                                                WHERE BackupIteration = 1
                                                    AND database_name = d.database_name
                                                )
            ) base
)
SELECT
            server_name
        ,   database_name
        ,   backup_finish_date
        ,   backup_type
        ,   first_lsn
        ,   last_lsn
        ,   checkpoint_lsn
        ,   is_copy_only
        ,   CASE backup_type WHEN 'Database (Full)' THEN 'RESTORE DATABASE [' + database_name + '] FROM  ' + physical_device_name + ' WITH  FILE = 1, NORECOVERY, NOUNLOAD, REPLACE, STATS = 5'
                WHEN 'Database (Differential)' THEN 'RESTORE DATABASE [' + database_name + '] FROM  ' + physical_device_name + ' WITH  FILE = 1, NORECOVERY, NOUNLOAD, STATS = 5'
                WHEN 'Transaction Log' THEN 'RESTORE LOG [' + database_name + '] FROM  ' + physical_device_name + ' WITH  FILE = 1, NORECOVERY, NOUNLOAD, STATS = 5'
                ELSE ''
            END AS RestoreStatement
FROM (
    SELECT  fdr.server_name
        ,   fdr.database_name
        ,   fdr.backup_finish_date
        ,   fdr.backup_type
        ,   fdr.physical_device_name
        ,   fdr.first_lsn
        ,   fdr.last_lsn
        ,   fdr.checkpoint_lsn
        ,   fdr.database_backup_lsn
        ,   fdr.is_copy_only
    FROM    BackupHistFullDiffRestores fdr

    UNION ALL

    SELECT  bhlr.server_name
        ,   bhlr.database_name
        ,   bhlr.backup_finish_date
        ,   bhlr.backup_type
        ,   bhlr.physical_device_name
        ,   bhlr.first_lsn
        ,   bhlr.last_lsn
        ,   bhlr.checkpoint_lsn
        ,   bhlr.database_backup_lsn
        ,   bhlr.is_copy_only
    FROM    BackupHistFullDiffRestores bhfdr 
            INNER JOIN BackupHist bhlr
                ON bhfdr.database_name = bhlr.database_name
                AND bhlr.last_lsn &gt;= bhfdr.recent_last_lsn
                AND bhfdr.recent_bak_num = 1
    WHERE   bhlr.backup_type = 'Transaction Log'
) restore_cmd
ORDER BY 1, 2, 6