diff --git a/substrate/frame/contracts/uapi/src/host/wasm32.rs b/substrate/frame/contracts/uapi/src/host/wasm32.rs
index 17c0fd341b5f9137b782513961a15d6aa71fd0d8..bc697238061ab16e47d304bd9583f51f7eb99c0b 100644
--- a/substrate/frame/contracts/uapi/src/host/wasm32.rs
+++ b/substrate/frame/contracts/uapi/src/host/wasm32.rs
@@ -301,6 +301,7 @@ macro_rules! impl_wrapper_for {
 				unsafe {
 					$( $mod )::*::$name(output.as_mut_ptr(), &mut output_len);
 				}
+				extract_from_slice(output, output_len as usize)
 			}
 		}
 	};