{"record":{"id":"45a8b74558f2861b","repo":"ruvnet/ruflo","slug":"skipping-invalid-migration-filename-filename","errorCode":null,"errorMessage":"Skipping invalid migration filename: ${filename}","messagePattern":"Skipping invalid migration filename: (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"v3/@claude-flow/plugins/src/integrations/ruvector/migrations/migrations.ts","lineNumber":220,"sourceCode":"\n    this.log('Migrations table initialized');\n  }\n\n  /**\n   * Load all migration files from the migrations directory\n   */\n  async loadMigrations(): Promise<MigrationFile[]> {\n    this.log(`Loading migrations from ${this.migrationsDir}`);\n\n    const files = await readdir(this.migrationsDir);\n    const sqlFiles = files.filter(f => f.endsWith('.sql')).sort();\n\n    const migrations: MigrationFile[] = [];\n\n    for (const filename of sqlFiles) {\n      const parsed = parseMigrationFilename(filename);\n      if (!parsed) {\n        this.logger.warn(`Skipping invalid migration filename: ${filename}`);\n        continue;\n      }\n\n      const filepath = join(this.migrationsDir, filename);\n      const content = await readFile(filepath, 'utf-8');\n\n      migrations.push({\n        number: parsed.number,\n        name: `${parsed.number.toString().padStart(3, '0')}_${parsed.name}`,\n        filename,\n        upSql: content,\n        downSql: extractRollbackSql(content),\n        checksum: md5(content),\n      });\n    }\n\n    this.log(`Found ${migrations.length} migration files`);\n    return migrations;","sourceCodeStart":202,"sourceCodeEnd":238,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/@claude-flow/plugins/src/integrations/ruvector/migrations/migrations.ts#L202-L238","documentation":"Generic guard in loadMigrations(): parseMigrationFilename could not extract a valid version/name from a .sql file in the migrations directory, so that file is excluded from the migration set rather than aborting the scan.","triggerScenarios":"Thrown at v3/@claude-flow/plugins/src/integrations/ruvector/migrations/migrations.ts:220 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Rename the migration file to the expected numeric/name format so it is picked up, or remove it if stray."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fa13ee4ad60ac2090b1480656eb233521790d640","analyzedAt":"2026-08-18T21:34:22.708Z","contentChangedAt":"2026-08-18T21:34:22.708Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}