“CRITICAL Object of class WP_Error could not be converted to string” using templates with twig

wp_get_post_terms() returns a WP_Error on failure. (Are you sure it’s $colection and not $collection in that function call?)

You can check the return value using is_wp_error() and decide what you’re going to output if it is, in fact, a WP_Error.

For example:

$term = wp_get_post_terms( $colection->posts[0]->ID ,'look' ); 

if ( is_wp_error( $term ) ) {

    echo 'Error: ' . $term->get_error_message();

} else {

    echo '<span property="itemListElement" typeof="ListItem">
          <a property="item" typeof="WebPage" title="Go to ' .
          $term[0]->name . '"href="' . 
          get_term_link( $term[0]->term_id).'" class="home">
          <span property="name">'.$term[0]->name.'</span>
          </a>
          <meta property="position" content="3"></span> > ';
    // Lines broken up for readability

}