Unless you provide the full code, finding out what is wrong will be hard. I used the same filters you provided in the question and could successfully start a stop a server-side trace.
I am using:
Microsoft SQL Server 2022 (RTM-CU1) (KB5022375) - 16.0.4003.1 (X64)
Jan 27 2023 16:51:31 Copyright (C) 2022 Microsoft Corporation
Developer Edition (64-bit) on Windows 10 Enterprise 10.0 (Build
19044: )
Here is the sample I ran:
-- Variables
DECLARE @rc int, @TraceID int, @filename NVARCHAR(256), @maxsize BIGINT, @on BIT
DECLARE @Folder VARCHAR(1000)
-- Create the holding folder
SET @Folder = 'C:\temp\testtrace1'
exec master.dbo.xp_create_subdir @Folder
SELECT @filename = @Folder + '' + REPLACE(@@SERVERNAME, '', '_') + '__sp_trace'
SELECT @maxsize=50, @on=1
-- Create a Queue
EXEC @rc = sp_trace_create @TraceID OUTPUT, 2, @filename, @maxsize, NULL
IF (@rc != 0) GOTO error
-- Set the events
exec sp_trace_setevent @TraceID, 10, 2, @on -- Needed for 2008 RML
exec sp_trace_setevent @TraceID, 12, 2, @on -- Needed for 2008 RML
exec sp_trace_setevent @TraceID, 10, 3, @on
exec sp_trace_setevent @TraceID, 10, 7, @on
exec sp_trace_setevent @TraceID, 10, 15, @on
exec sp_trace_setevent @TraceID, 10, 8, @on
exec sp_trace_setfilter @TraceID, 10, 0, 7, N'SQL Server Profiler%'
exec sp_trace_setfilter @TraceID, 10, 0, 7, N'DatabaseMail%'
exec sp_trace_setfilter @TraceID, 10, 0, 7, N'SQLAgent%'
-- Set the trace status to start
exec sp_trace_setstatus @TraceID, 1
-- Wait 1 min
WAITFOR DELAY '00:01:00'
-- Stop/Delete the trace
exec sp_trace_setstatus @TraceID, 0
exec sp_trace_setstatus @TraceID, 2
goto finish
error:
select ErrorCode=@rc
finish: