Unlike all other Snowflake operators, S3ToSnowflakeTransfer requires the usage of schema instead of letting it be an optional variable that when passed would be used, and if not, then connection metadata is used. 

I can be assigned on this if needed. Keeping this up here so this doesn't go unnoticed. 
airflow/providers/snowflake/transfers/s3_to_snowflake.py
"""
    Executes an COPY command to load files from s3 to Snowflake
    .. seealso::
        For more information on how to use this operator, take a look at the guide:
        :ref:`howto/operator:S3ToSnowflakeOperator`
    :param s3_keys: reference to a list of S3 keys
    :type s3_keys: list
    :param table: reference to a specific table in snowflake database
    :type table: str
    :param schema: name of schema (will overwrite schema defined in
        connection)
    :type schema: str
    :param stage: reference to a specific snowflake stage. If the stage's schema is not the same as the
        table one, it must be specified
    :type stage: str
    :param prefix: cloud storage location specified to limit the set of files to load
    :type prefix: str
    :param file_format: reference to a specific file format
    :type file_format: str
    :param warehouse: name of warehouse (will overwrite any warehouse
        defined in the connection's extra JSON)
    :type warehouse: str
    :param database: reference to a specific database in Snowflake connection
    :type database: str
    :param columns_array: reference to a specific columns array in snowflake database
    :type columns_array: list
    :param snowflake_conn_id: Reference to