Skip to content

Oracle plugin fails to load with generic invalid bundle error #1915

Description

@zckyachmd

Summary

Installing/loading the Oracle driver plugin can fail with:

Invalid plugin bundle: Bundle failed to load executable

What I found

In app code, the message is emitted when Bundle.load() returns false in PluginManager.validateAndLoadBundle:

  • TablePro/Core/Plugins/PluginManager.swift:549 throws PluginError.invalidBundle("Bundle failed to load executable")
  • TablePro/Core/Plugins/PluginError.swift:29 formats that as Invalid plugin bundle: ...

This drops the underlying dyld/NSBundle error, so users cannot tell whether the real cause is OS version, missing Swift runtime, architecture, signature, dependency, etc.

I checked current Oracle registry entry from TableProApp/plugins:

  • plugin: com.TablePro.OracleDriver
  • version: 1.2.17
  • registry minAppVersion: 0.56.1
  • arm64 ZIP checksum matches registry: fe51fd2a360151d8d3dd5dff0c31ecd12a8529eb25b7667bd265b5f0732b336b

Extracted OracleDriver.tableplugin/Contents/Info.plist shows:

DTXcode = 2641
DTSDKName = macosx26.4
DTPlatformVersion = 26.4
DTCompiler = com.apple.compilers.llvm.clang.1_0
LSMinimumSystemVersion = 14.0
TableProPluginKitVersion = 18
NSPrincipalClass = OracleDriver.OraclePlugin

otool -L shows dependency on @rpath/TableProPluginKit.framework and several Swift runtime dylibs, including newer weak Swift libs like libswiftSynchronization.dylib.

Why this may be happening

The Oracle plugin artifact appears to be built with Xcode 17 / macOS 26.4 SDK, while the registry allows app version 0.56.1. On user machines with older TablePro builds or older macOS/Swift runtime combinations, Bundle.load() may fail before the plugin class loads. The app then reports only the generic message above.

Suggested fixes

  1. Surface the underlying load error instead of only Bundle.load() == false. Using Bundle.loadAndReturnError() would make this actionable.
  2. Recheck Oracle plugin registry compatibility fields for v1.2.17. If this artifact requires newer TablePro/macOS/runtime than minAppVersion: 0.56.1, bump registry metadata or rebuild with the intended deployment/toolchain.
  3. Optional: log otool/dyld failure details in the plugin diagnostic sheet.

Repro context

User hits this while installing Oracle driver from the plugin marketplace. Artifact checked from current plugin registry.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions