return should not fallback to dynamic