CustomThunk on top of UBlueprintAsyncActionBase not working

Hi, I would like to write an async blueprint node accepting a wildcard variable, so I used CustomThunk and UBlueprintAsyncActionBase, something like this:

class COMPONENTCAMERASYSTEM_API UEAsyncSetPropertyAction : public UBlueprintAsyncActionBase
{
	GENERATED_BODY()

private:
	void InternalTick();
	void InternalComplete();

public:
	UPROPERTY(BlueprintAssignable)
	FAsyncSetPropertyOutputPin Tick;

	UPROPERTY(BlueprintAssignable)
	FAsyncSetPropertyOutputPin Completed;

	UFUNCTION(BlueprintCallable, CustomThunk, meta = (BlueprintInternalUseOnly = "true", WorldContext = "WorldContextObject", CustomStructureParam = "Value"))
	static UEAsyncSetPropertyAction* SetPropertyByName(const UObject* WorldContextObject, UObject* Object, FName PropertyName, const int32& Value);
	DECLARE_FUNCTION(execSetPropertyByName)
	{
		P_GET_OBJECT(UObject, Object);
		P_GET_PROPERTY(FNameProperty, PropertyName);

		Stack.StepCompiledIn<FProperty>(NULL);
		void* ValuePtr = Stack.MostRecentPropertyAddress;
		FProperty* Valueproperty = Stack.MostRecentProperty;

		P_FINISH;

		P_NATIVE_BEGIN;
		UEAsyncSetPropertyAction* Action = NewObject<UEAsyncSetPropertyAction>();
		P_NATIVE_END;
	}

	virtual void Activate() override;

However, when I feed any type of variable into Value, it says the type of Value is undetermined. Is there any solution to this issue without writing a K2Node?

Seems like a non-trivial problem. In the end I turned to use Latent function with multiple output exec pins. The problem with latent functions is you must maintain a FPendingLatentAction structure and this sometimes could not be flexible in terms of accessibility.

BTW, CustomThunk can be used together with Latent and ExpandEnumAsExecs meta specifiers. So I was wondering there should be no reason that CustomThunk cannot be used with UBlueprintAsyncActionBase. Idk if this is a bug or there is some other reason for this.