email@example.com(wl_display@1, 1, "invalid arguments for firstname.lastname@example.org")
wl_surface_attach(wl_surface* surface, wl_buffer* buffer, int, int);
((wl_proxy*)surface)->display != ((wl_proxy*)buffer)->display
surface's display and buffer's display were not matched.
wayland server can't find the buffer object in surface's client connection.
correct source code, let wl_surface and wl_buffer use the same display.
By the way, each time you call wl_display_get(NULL).
you will get a new display.