• You could use a Script Task to check for a valid connection before your Data Flow and then take different actions depending on the result. For example a Success branch executing your data flow and a Failure branch redirecting to some kind of logging.

    Here's an example:

    SSIS Nugget: Verify a data source before using it

    It doesn't address the problem of altered metadata, though. I'd be thinking of some kind of error handler attached to the DFT object.

    ____________
    Just my $0.02 from over here in the cheap seats of the peanut gallery - please adjust for inflation and/or your local currency.