# Dapr 1.7.1

## Summary

This hotfix release addresses a change made in how actor timers are validated during creation. Specifically, `DueTime` can be set to 0 to have a reminder fire immediately.
Additionally, this hotfix addresses an issue in the Apache Pulsar pubsub component preventing the use of namespaces when publishing to topics.
Lastly, there is a fix to avoid a nil dereference crash on the sidecar when using API logging feature in gRPC API.

### Runtime
* An Actor Timer with a `DueTime` of `0` will now pass validation allowing timers to fire immediately.

### Components
* The correct value the Pulsar topic is now specified on publishing, allowing the use of namespaces.

## Details

### Actor Timer Creation

#### Problem

Registering an Actor Timer with a `DueTime` of `0` would fail and the Timer would not be started.

#### Root cause

A change introduced in release 1.6 caused Timers to be invalidated if their `DueTime` was in the past. However, when the `DueTime` is 0, signifying an immediate fire, it is set in Dapr to the current time. After it was set to the current time, it would later be compared to the current time again. As these time comparisons did not share the value for current time, it is almost guaranteed that the `DueTime` would now appear to be in the past.

#### Solution

Revert the code to pre-1.6 behavior which allows `DueTimes` to be in the past as that still equates to firing immediately.

### Panic: nil pointer dereference in API Logging

#### Problem

When enabling the API logging preview feature, a nil reference can occur and crash the sidecar.

#### Root cause

Logic for API logging in gRPC assumed gRPC `info` object was always not nil, however it has been reported that it could be nil when invoking an actor as per issue [#4527](https://github.com/dapr/dapr/issues/4527).

#### Solution

Add a nil check for API logging preview feature in gRPC API.
