diff --git a/core/navigation/hooks/useParam/createParamHooks.ts b/core/navigation/hooks/useParam/createParamHooks.ts
index 2d8aef72a82d8dc077f5aafab33b4be34284d554..13bc747a3e230ee9135a57a856c0b8eca7517b33 100644
--- a/core/navigation/hooks/useParam/createParamHooks.ts
+++ b/core/navigation/hooks/useParam/createParamHooks.ts
@@ -74,39 +74,16 @@ const createParamHooks = <Props extends Record<string, unknown> = Record<string,
     return [nativeState, setNativeState]
   }
 
-  const useUUIDParam = <
-    Name extends keyof Props,
-    NullableUnparsedParsedType extends Props[Name] | undefined = Props[Name] | undefined,
-    ParseFunction extends undefined | ((value?: string | string[]) => NonNullable<NullableUnparsedParsedType>) = (
-      value?: string | string[]
-    ) => NonNullable<NullableUnparsedParsedType>,
-    InitialValue = NullableUnparsedParsedType | undefined,
-    ParsedType = InitialValue extends undefined
-      ? NullableUnparsedParsedType
-      : ParseFunction extends undefined
-        ? NullableUnparsedParsedType
-        : NonNullable<NullableUnparsedParsedType>,
-  >(
-    ...[name, maybeConfig]: Params<Props, Name, NullableUnparsedParsedType, ParseFunction, InitialValue, ParsedType>
-  ): Returns<Props, Name, NullableUnparsedParsedType, ParseFunction, InitialValue, ParsedType> => {
-    const { parse = (value?: string | string[]) => value, initial } = maybeConfig || { parse: coerceToUUIDString }
-    const nativeRoute = useRoute()
-
-    const stableParse = useStableCallback(parse)
-
-    const [nativeState, setNativeState] = useState<ParsedType | InitialValue>(() => {
-      const state = (nativeRoute?.params as any)?.[name]
-      return (stableParse(state) as ParsedType) ?? (initial as InitialValue)
+  const useUUIDParam = (
+    name: Parameters<typeof useParam>[0],
+    maybeConfig?: Omit<Parameters<typeof useParam>[1], 'parse'>
+  ) =>
+    useParam(name, {
+      ...maybeConfig,
+      initial: maybeConfig?.initial,
+      parse: coerceToUUIDString,
     })
 
-    useEffect(() => {
-      const state = (nativeRoute?.params as any)?.[name]
-      setNativeState((stableParse(state) as ParsedType) || (initial as InitialValue))
-    }, [setNativeState, stableParse, nativeRoute?.params, name, initial])
-
-    return [nativeState, setNativeState]
-  }
-
   const useUpdateParams = (
     // eslint-disable-next-line @typescript-eslint/no-unused-vars
     options?: UpdateOptions
diff --git a/core/navigation/hooks/useParam/createParamHooks.web.ts b/core/navigation/hooks/useParam/createParamHooks.web.ts
index a1cd81986069e7442436629575be90e597143046..48b1657ad844a65a61d2e0489f10dce05081d98d 100644
--- a/core/navigation/hooks/useParam/createParamHooks.web.ts
+++ b/core/navigation/hooks/useParam/createParamHooks.web.ts
@@ -118,86 +118,15 @@ const createParamHooks = <Props extends Record<string, unknown> = Record<string,
     return [state, setState]
   }
 
-  const useUUIDParam = <
-    Name extends keyof Props,
-    NullableUnparsedParsedType extends Props[Name] | undefined = Props[Name] | undefined,
-    ParseFunction extends undefined | ((value?: string | string[]) => NonNullable<NullableUnparsedParsedType>) = (
-      value?: string | string[]
-    ) => NonNullable<NullableUnparsedParsedType>,
-    InitialValue = NullableUnparsedParsedType | undefined,
-    ParsedType = InitialValue extends undefined
-      ? NullableUnparsedParsedType
-      : ParseFunction extends undefined
-        ? NullableUnparsedParsedType
-        : NonNullable<NullableUnparsedParsedType>,
-  >(
-    ...[name, maybeConfig]: Params<Props, Name, NullableUnparsedParsedType, ParseFunction, InitialValue, ParsedType>
-  ): Returns<Props, Name, NullableUnparsedParsedType, ParseFunction, InitialValue, ParsedType> => {
-    const {
-      parse = (value?: string | string[]) => value,
-      initial,
-      stringify = (value: ParsedType) => `${value}`,
-      paramsToClearOnSetState,
-      options,
-    } = maybeConfig || { parse: coerceToUUIDString }
-    const nextRouter = useRouter()
-
-    const stableParse = useStableCallback(parse)
-    const stableStringify = useStableCallback(stringify)
-    const stableParamsToClear = useStable(paramsToClearOnSetState)
-
-    const initialValue = useRef(initial)
-    const hasSetState = useRef(false)
-
-    const setState = useCallback(
-      (value: ParsedType) => {
-        hasSetState.current = true
-        const { pathname, query } = Router
-        const newQuery = { ...query }
-        if (value != null && (value as any) !== '') {
-          newQuery[name as string] = stableStringify(value)
-        } else {
-          delete newQuery[name as string]
-        }
-
-        if (stableParamsToClear.current) {
-          for (const paramKey of stableParamsToClear.current) {
-            delete newQuery[paramKey as string]
-          }
-        }
-
-        const willChangeExistingParam = query[name as string] && newQuery[name as string]
-
-        const action = options?.web?.replace || willChangeExistingParam ? Router.replace : Router.push
-
-        action(
-          {
-            pathname,
-            query: newQuery,
-          },
-          undefined,
-          {
-            shallow: true,
-          }
-        )
-      },
-      [stableParamsToClear, name, options?.web?.replace, stableStringify]
-    )
-
-    const webParam = nextRouter?.query?.[name as string]
-
-    const state = useMemo<ParsedType>(() => {
-      let state: ParsedType
-      if (webParam === undefined && !hasSetState.current) {
-        state = initialValue.current as any
-      } else {
-        state = stableParse(webParam) as ParsedType
-      }
-      return state
-    }, [stableParse, webParam])
-
-    return [state, setState]
-  }
+  const useUUIDParam = (
+    name: Parameters<typeof useParam>[0],
+    maybeConfig?: Omit<Parameters<typeof useParam>[1], 'parse'>
+  ) =>
+    useParam(name, {
+      ...maybeConfig,
+      initial: maybeConfig?.initial,
+      parse: coerceToUUIDString,
+    })
 
   const useUpdateParams = (
     options?: UpdateOptions
diff --git a/core/screens/spaces/tasks/TaskDetails.tsx b/core/screens/spaces/tasks/TaskDetails.tsx
index a8b2e96c54993cdf2099e5968a81c07e36006fa1..0a6fbbb789f640146032446e931580082b58fa68 100644
--- a/core/screens/spaces/tasks/TaskDetails.tsx
+++ b/core/screens/spaces/tasks/TaskDetails.tsx
@@ -22,7 +22,6 @@ import HoliContainer from '@holi/ui/components/atoms/HoliContainer'
 import HoliText from '@holi/ui/components/atoms/HoliText'
 import { type HoliTheme, useTheme } from '@holi/ui/styles/theme'
 import { ScrollViewRefreshable } from '@holi/core/helpers/withRefreshControl'
-import { coerceToUUIDString } from '@holi/core/helpers'
 
 export type TaskDetailsParams = {
   spaceIdOrName: string
@@ -33,7 +32,7 @@ const { useParam, useUUIDParam } = createParamHooks<TaskDetailsParams>()
 
 const TaskDetails = () => {
   const [spaceIdOrName] = useParam('spaceIdOrName') // spaceIdOrName can either be space.id or space.name (slug)
-  const [taskId] = useUUIDParam('taskId', { parse: coerceToUUIDString, initial: undefined })
+  const [taskId] = useUUIDParam('taskId')
   const setScreenOptions = useSetScreenOptions()
   const { replaceRoute } = useRouting()
   const { displayError } = useErrorHandling()