There are several ways to define two-sided $p$-values in this case. Michael Fay lists three in his [article][1]. The following is mostly taken from his article. Suppose you have a discrete test statistic $t$ with random variable $T$ such that larger values of $T$ imply larger values of a parameter of interest, $\theta$. Let $F_{\theta}(t)=Pr[T\leq t;\theta]$ and $\bar{F}_{\theta}(t)=Pr[T\geq t;\theta]$. Suppose the null value is $\theta_{0}$. The one-sided $p$-values are then denoted by $F_{\theta_{0}}(t), \bar{F}_{\theta_{0}}(t)$, respectively. The three ways listed to define two-sided $p$-values are as follows: $\textbf{central:}$ $p_{c}$ is 2 times the minimum of the one-sided $p$-values bounded above by 1: $$ p_{c}=\textrm{min}\{1,2\times\textrm{min}(F_{\theta_{0}}(t), \bar{F}_{\theta_{0}}(t))\}. $$ $\textbf{minlike:}$ $p_{m}$ is the sum of probabilities of outcomes with likelihoods less than or equal to the observed likelihood: $$ p_{m}=\sum\limits_{T:f(T)\leq f(t)}f(T) $$ where $f(t) = Pr[T=t;\theta_{0}]$. $\textbf{blaker:}$ $p_{b}$ combines the probability of the smaller observed tail with the smallest probability of the opposite tail that does not exceed that observed probability. This may be expressed as: $$ p_{b}=Pr[\gamma(T)\leq\gamma(t)] $$ where $\gamma(T)=\textrm{min}\{F_{\theta_{0}}(T), \bar{F}_{\theta_{0}}(T))\}$. If $p(\theta_{0})$ is a two-sided $p$-value testing $H_{0}:\theta=\theta_{0}$, then its $100(1-\alpha)$\% matching confidence interval is the smallest interval that contains all $\theta_{0}$ such that $p(\theta_{0})>\alpha$. The matching confidence limits to the $\textbf{central}$ test are $(\theta_{L},\theta_{U})$ which are the solutions to: $$ \alpha/2=\bar{F}_{\theta_{L}}(t) $$ and $$ \alpha/2=F_{\theta_{U}}(t). $$ > **The contradiction arises because `poisson.test` returns $p_{m}$ as the $p$-value but confidence limits that are based on the $\textrm{central}$ > test!** The [`exactci`][2] package returns the correct matching $p$-values and confidence limits (you can set the method using the option `tsmethod`): library(exactci) poisson.exact(x=10, r=5.22, tsmethod = "central") Exact two-sided Poisson test (central method) data: 10 time base: 1 number of events = 10, time base = 1, p-value = 0.08105 alternative hypothesis: true event rate is not equal to 5.22 95 percent confidence interval: 4.795389 18.390356 sample estimates: event rate 10 Now there is no conflict between the $p$-value and the confidence intervals. In rare cases, even the `exactci` function will result in inconsistencies, which is mentioned in Michael Fays article. [1]: https://journal.r-project.org/archive/2010/RJ-2010-008/RJ-2010-008.pdf [2]: https://cran.r-project.org/package=exactci