In the MWE below, the first and second references link to eq. (I.1), and the third and fourth equation references both link to eq. (2.1). While they should link to eq. (I.1), (1.1), (II.1) and (2.1), respectively.

What causes this error here?

\documentclass[10pt,a4paper,openany]{book}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}

\begin{document}

\numberwithin{equation}{part}
\part{I}
$$\label{eq:I_1} a = b$$

\numberwithin{equation}{chapter}
\chapter{I}
$$\label{eq:chap_1} a = part 1$$

\numberwithin{equation}{part}
\part{II}
$$\label{eq:II_1} a = chap 1$$

\numberwithin{equation}{chapter}
\chapter{2}
$$\label{eq:chap_2} a = chap 2$$

\cref{eq:I_1}, \cref{eq:chap_1}, \cref{eq:II_1}, \cref{eq:chap_2}.

\end{document}

• Some times the older .aux files are not updated appropriately. In the same directory of your .tex file, there is a file with the same name and ends with .aux. Remove it and try to compile the document again. – Al-Motasem Aldaoudeyeh Mar 23 at 12:29
• @moewe You are right, I misread the question. – TeXnician Mar 23 at 12:32
• Related tex.stackexchange.com/q/6098/35864, tex.stackexchange.com/q/3188/35864. hypertexnames=false could also help here. – moewe Mar 23 at 14:17

hyperref interally names the links after your \numberwithin commands as equation.\theHpart.\arabic{equation} and equation.\theHchapter.\arabic{equation}. As \theHpart is defined as \arabic{part} and \theHchapter as \arabic{chapter} this leads to duplicated destination names. So you get warnings in the log:
l.102

One solution is e.g. to change \theHpart so that an unique destination is created:
 \renewcommand\theHpart{\Roman{part}}